Patents by Inventor Manuel Then

Manuel Then has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11514048
    Abstract: A method implements optimization of database queries by computing domain cardinality estimates. A client sends a database query to a server. The method parses the query to identify data columns. For each of the data columns, the method computes a lower bound and an upper bound of distinct data values using a pre-computed table size. The method also computes a patch factor by applying a pre-computed function to a ratio between a number of distinct data values that appear exactly once in a data sample and a number of distinct data values in the sample. Based on the patch factor, the lower bound, and the upper bound, the method computes an estimate of distinct values for each of the data columns. The method subsequently generates an execution plan for the query according to the computed estimates, executes the execution plan, and returns a result set to the client.
    Type: Grant
    Filed: November 3, 2020
    Date of Patent: November 29, 2022
    Assignee: TABLEAU SOFTWARE, INC.
    Inventors: Sebastian Hofstetter, Moritz Kaufmann, Thomas Neumann, Viktor Leis, Alfons Kemper, Tobias Muehlbauer, Jan Finis, Manuel Then
  • Patent number: 11475005
    Abstract: A database engine includes one or more computing devices, each having one or more processors and memory. The memory stores programs configured for execution by the processors. The database engine receives a database query from a client, and parses the database query to build a query operator tree. The query operator tree includes a plurality of query operators. The database engine performs one or more optimization passes on the query operator tree, including a deduplication optimization pass, to form an optimized execution plan. The deduplication optimization pass includes determining that a first query operator is equivalent to a second query operator during a traversal of the query operator tree, and replacing the second query operator with a link to reuse results from the first query operator. The database engine executes the optimized execution plan to retrieve a result set from the database and returns the result set to the client.
    Type: Grant
    Filed: October 6, 2020
    Date of Patent: October 18, 2022
    Assignee: TABLEAU SOFTWARE, INC.
    Inventors: Adrian Vogelsgesang, Michael Haubenschild, Richard L. Cole, Jan Finis, Manuel Then, Tobias Muehlbauer, Thomas Neumann
  • Patent number: 11055284
    Abstract: A database engine receives a database query that specifies retrieving data from a data source. The database engine parses the query to build an operator tree that includes a TableScan operator configured to scan a table from the data source to produce outputs corresponding to a single data field from the table, and includes a GroupBy operator that groups rows of the table according to the data field. The database engine generates and executes code corresponding to the operator tree to retrieve a result set. When the TableScan operator is a child of the GroupBy operator and the outputs are independent of duplicate input rows from the table, execution of the TableScan operator comprises, for each storage block of rows from the table: determining a storage compression scheme for encoding the data field and, for certain encodings, using the encoding to produce the outputs without duplication of rows.
    Type: Grant
    Filed: March 30, 2018
    Date of Patent: July 6, 2021
    Assignee: TABLEAU SOFTWARE, INC.
    Inventors: Adrian Vogelsgesang, Manuel Then, Jan Finis, Tobias Muehlbauer, Richard Wesley, Pawel Terlecki
  • Publication number: 20210049176
    Abstract: A method implements optimization of database queries by computing domain cardinality estimates. A client sends a database query to a server. The method parses the query to identify data columns. For each of the data columns, the method computes a lower bound and an upper bound of distinct data values using a pre-computed table size. The method also computes a patch factor by applying a pre-computed function to a ratio between a number of distinct data values that appear exactly once in a data sample and a number of distinct data values in the sample. Based on the patch factor, the lower bound, and the upper bound, the method computes an estimate of distinct values for each of the data columns. The method subsequently generates an execution plan for the query according to the computed estimates, executes the execution plan, and returns a result set to the client.
    Type: Application
    Filed: November 3, 2020
    Publication date: February 18, 2021
    Inventors: Sebastian HOFSTETTER, Moritz Kaufmann, Thomas Neumann, Viktor Leis, Alfons Kemper, Tobias Muehibauer, Jan Finis, Manuel Then
  • Patent number: 10901990
    Abstract: A database engine receives a human-readable database query that includes a plurality of conditional expressions. The database engine parses the database query to build an operator tree that includes a subtree corresponding to each of the conditional expressions. The database engine identifies a subexpression that appears in two or more of the conditional expressions. The subexpression is executed conditionally. The database engine hoists the subexpression outside of the conditional expression so that it is executed unconditionally. The database engine modifies the operator tree to specify computation of a value for the subexpression a first time and to reuse the computed value when the subexpression is subsequently encountered. The database engine executes the modified operator tree to form a result set corresponding to the database query, thereby evaluating the subexpression only a single time for each row of input data and returns the result set.
    Type: Grant
    Filed: January 31, 2018
    Date of Patent: January 26, 2021
    Assignee: Tableau Software, Inc.
    Inventors: Adrian Vogelsgesang, Jan Finis, Manuel Then
  • Publication number: 20210019319
    Abstract: A database engine includes one or more computing devices, each having one or more processors and memory. The memory stores programs configured for execution by the processors. The database engine receives a database query from a client, and parses the database query to build a query operator tree. The query operator tree includes a plurality of query operators. The database engine performs one or more optimization passes on the query operator tree, including a deduplication optimization pass, to form an optimized execution plan. The deduplication optimization pass includes determining that a first query operator is equivalent to a second query operator during a traversal of the query operator tree, and replacing the second query operator with a link to reuse results from the first query operator. The database engine executes the optimized execution plan to retrieve a result set from the database and returns the result set to the client.
    Type: Application
    Filed: October 6, 2020
    Publication date: January 21, 2021
    Inventors: Adrian Vogelsgesang, Michael Haubenschild, Richard L. Cole, Jan Finis, Manuel Then, Tobias Muehlbauer, Thomas Neumann
  • Patent number: 10824625
    Abstract: A method implements optimization of database queries by computing domain cardinality estimates. A client sends a database query to a server. The method parses the query to identify data columns. For each of the data columns, the method computes a lower bound and an upper bound of distinct data values using a pre-computed table size. The method also computes a patch factor by applying a pre-computed function to a ratio between a number of distinct data values that appear exactly once in a data sample and a number of distinct data values in the sample. Based on the patch factor, the lower bound, and the upper bound, the method computes an estimate of distinct values for each of the data columns. The method subsequently generates an execution plan for the query according to the computed estimates, executes the execution plan, and returns a result set to the client.
    Type: Grant
    Filed: December 28, 2018
    Date of Patent: November 3, 2020
    Assignee: Tableau Software, Inc.
    Inventors: Sebastian Hofstetter, Moritz Kaufmann, Thomas Neumann, Viktor Leis, Alfons Kemper, Tobias Muehlbauer, Jan Finis, Manuel Then
  • Patent number: 10795888
    Abstract: A database engine receives a database query from a client. The database engine parses the database query to build a query operator tree that includes a plurality of query operators. The database engine performs one or more optimization passes on the query operator tree, including a deduplication optimization pass, to form an optimized execution plan. The deduplication optimization pass includes: creating a list of query operators via a first traversal of the query operator tree, determining a first query operator that is equivalent to a second query operator, based on a hash map, via a second traversal of the query operator tree, and substituting, via a third traversal of the query operator tree, the second query operator with a tree node that links to the first query operator. The database engine executes the optimized execution plan to retrieve a result set from the database, and returns the result set.
    Type: Grant
    Filed: December 21, 2018
    Date of Patent: October 6, 2020
    Assignee: Tableau Software, Inc.
    Inventors: Adrian Vogelsgesang, Michael Haubenschild, Richard L. Cole, Jan Finis, Manuel Then, Tobias Muehlbauer, Thomas Neumann
  • Publication number: 20200201860
    Abstract: A database engine receives a database query from a client. The database engine parses the database query to build a query operator tree that includes a plurality of query operators. The database engine performs one or more optimization passes on the query operator tree, including a deduplication optimization pass, to form an optimized execution plan. The deduplication optimization pass includes: creating a list of query operators via a first traversal of the query operator tree, determining a first query operator that is equivalent to a second query operator, based on a hash map, via a second traversal of the query operator tree, and substituting, via a third traversal of the query operator tree, the second query operator with a tree node that links to the first query operator. The database engine executes the optimized execution plan to retrieve a result set from the database, and returns the result set.
    Type: Application
    Filed: December 21, 2018
    Publication date: June 25, 2020
    Inventors: Adrian Vogelsgesang, Michael Haubenschild, Rick Cole, Jan Finis, Manuel Then, Tobias Muehlbauer, Thomas Neumann
  • Patent number: 10133827
    Abstract: Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, parallel execution of the MS-BFS is regulated with batches of vertices. In an embodiment, the original software instructions are expressed in Green-Marl graph analysis language.
    Type: Grant
    Filed: May 12, 2015
    Date of Patent: November 20, 2018
    Assignee: Oracle International Corporation
    Inventors: Manuel Then, Sungpack Hong, Martin Sevenich, Hassan Chafi
  • Publication number: 20160335322
    Abstract: Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, parallel execution of the MS-BFS is regulated with batches of vertices. In an embodiment, the original software instructions are expressed in Green-Marl graph analysis language.
    Type: Application
    Filed: May 12, 2015
    Publication date: November 17, 2016
    Inventors: Manuel Then, Sungpack Hong, Martin Sevenich, Hassan Chafi