Patents by Inventor William J. McKenna
William J. McKenna 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: 11934397Abstract: Techniques are disclosed relating to database query optimizers. In some embodiments, a query parser of a database system receives a query requesting data from a multi-tenant database. The query includes a first constraint that restricts a query optimizer's selection of a set of execution plans available to implement the query. The database system determines whether an override has been specified for a particular tenant associated with the received query, the override indicating that the first constraint is to be replaced with a second constraint for the particular tenant. In response to determining that the override has been specified for the particular tenant, the database system replaces the first constraint in the query with the second constraint and provides the query with the second constraint to the query optimizer for selection of an execution plan in accordance with the second constraint.Type: GrantFiled: January 31, 2020Date of Patent: March 19, 2024Assignee: Salesforce, Inc.Inventors: Rama Krishna Korlapati, William J. McKenna, John Francis O'Brien
-
Publication number: 20210240710Abstract: Techniques are disclosed relating to database query optimizers. In some embodiments, a query parser of a database system receives a query requesting data from a multi-tenant database. The query includes a first constraint that restricts a query optimizer's selection of a set of execution plans available to implement the query. The database system determines whether an override has been specified for a particular tenant associated with the received query, the override indicating that the first constraint is to be replaced with a second constraint for the particular tenant. In response to determining that the override has been specified for the particular tenant, the database system replaces the first constraint in the query with the second constraint and provides the query with the second constraint to the query optimizer for selection of an execution plan in accordance with the second constraint.Type: ApplicationFiled: January 31, 2020Publication date: August 5, 2021Inventors: Rama Krishna Korlapati, William J. McKenna, John Francis O'Brien
-
Patent number: 10628417Abstract: A database system determines execution plans for database queries by evaluating a number of partial solutions for each database query. The database system determines a partial solutions limit on the number of partial solutions to be evaluated for determining the execution plan of the query. The database system determines a plurality of partial solutions, each partial solution corresponding to a portion of the execution plan for processing the database query. The database system evaluates a number of candidate partial solutions for determining a partial solution. The number of candidate partial solutions evaluated is determined based on the partial solutions limit. The database system combines the plurality of partial solutions to obtain an execution plan for the database query. The database system executes the database query by executing the execution plan.Type: GrantFiled: October 24, 2014Date of Patent: April 21, 2020Assignee: ParAccel LLCInventors: William J. McKenna, Richard L. Cole
-
Patent number: 10394807Abstract: A database system rewrites database queries based on rewrite constraints specification. The rewrite constraints specification provides directives to the database system to generate temporary tables for storing intermediate results of database queries and rewrite the corresponding database queries in terms of the temporary tables. The subqueries for matching the rewrite constraints specification may be specified in various ways. For example, the rewrite constraints specification may identify the subqueries by using one or more aliases. The rewrite constraints specification may specify a list of tables such that all database queries that join the database tables specified in the rewrite constraints specification are determined to match. The optimizer is able to optimize the rewritten database queries better by getting a better estimate for the statistics describing the temporary tables.Type: GrantFiled: November 11, 2014Date of Patent: August 27, 2019Assignee: ParAccel LLCInventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Publication number: 20190236188Abstract: Techniques are disclosed relating to database query optimizers. In some embodiments, a query optimizer of a database system receives a first query including a first constraint that restricts selection of a set of execution plans available to implement the first query. The first constraint identifies, at least, a first option and a second option to implement a clause in the first query. The query optimizer evaluates, based on the first constraint, a first execution plan that includes performance of the first option and a second execution plan that includes performance of the second option. Based on the evaluating, the query optimizer selects one of the first and second execution plans to implement the first query. The query optimizer causes execution of the selected execution plan.Type: ApplicationFiled: January 31, 2018Publication date: August 1, 2019Inventor: William J. McKenna
-
Patent number: 10268638Abstract: A database system allows users to specify plan constraint specification that limit choices of execution plans considered by an optimizer of the database system for optimizing database queries. The plan constraint specification specifies attributes of execution plans. The plan constraint specification may identify tables/intermediate results that the plan constraint is applicable to using table names or aliases. The database system applies the plan constraint specification to database queries that match the tables/aliases specified in the plan constraint specification. The database system limits the choice of execution plans evaluated for a database query to execution plans satisfying the attributes specified in an applicable plan constraint specification. The plan constraint specification may specify distribution of a table, a join order for tables, the join mechanism, cardinality of a table or intermediate result, and so on.Type: GrantFiled: November 11, 2014Date of Patent: April 23, 2019Assignee: ParAccel LLCInventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Patent number: 9767150Abstract: A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.Type: GrantFiled: July 21, 2013Date of Patent: September 19, 2017Assignee: ParAccel, Inc.Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Patent number: 9665619Abstract: A database system optimizes database queries that comprise subqueries. The database system factors out computation from two or more subqueries to a reusable subquery. The reusable subquery returns a result set. The subqueries are rewritten to use the result set and the database query modified to use the rewritten subqueries. The modified database query performs efficiently since the result set is computed only once for each subquery that uses the reusable query. The database system also composes nested subqueries that compute aggregate values. The database system identifies an inner subquery nested within an outer subquery, each subquery computing an aggregate value. The database system determines a new aggregate function corresponding to a composition of aggregate functions of the inner and the outer queries. The database system determines a composed query using the inner query with the outer query. The composed query uses the new aggregate function.Type: GrantFiled: September 18, 2015Date of Patent: May 30, 2017Assignee: Actian CorporationInventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Patent number: 9582539Abstract: A database system optimizes database queries that comprise subqueries. The database system factors out computation from two or more subqueries to a reusable subquery. The reusable subquery returns a result set. The subqueries are rewritten to use the result set and the database query modified to use the rewritten subqueries. The modified database query performs efficiently since the result set is computed only once for each subquery that uses the reusable query. The database system also composes nested subqueries that compute aggregate values. The database system identifies an inner subquery nested within an outer subquery, each subquery computing an aggregate value. The database system determines a new aggregate function corresponding to a composition of aggregate functions of the inner and the outer queries. The database system determines a composed query using the inner query with the outer query. The composed query uses the new aggregate function.Type: GrantFiled: March 13, 2013Date of Patent: February 28, 2017Assignee: ParAccel, Inc.Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Patent number: 9183254Abstract: A database system optimizes database queries that comprise subqueries. The database system factors out computation from two or more subqueries to a reusable subquery. The reusable subquery returns a result set. The subqueries are rewritten to use the result set and the database query modified to use the rewritten subqueries. The modified database query performs efficiently since the result set is computed only once for each subquery that uses the reusable query. The database system also composes nested subqueries that compute aggregate values. The database system identifies an inner subquery nested within an outer subquery, each subquery computing an aggregate value. The database system determines a new aggregate function corresponding to a composition of aggregate functions of the inner and the outer queries. The database system determines a composed query using the inner query with the outer query. The composed query uses the new aggregate function.Type: GrantFiled: March 13, 2013Date of Patent: November 10, 2015Assignee: ParAccel LLCInventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Publication number: 20150154256Abstract: A database system determines execution plans for database queries by evaluating a number of partial solutions for each database query. The database system determines a partial solutions limit on the number of partial solutions to be evaluated for determining the execution plan of the query. The database system determines a plurality of partial solutions, each partial solution corresponding to a portion of the execution plan for processing the database query. The database system evaluates a number of candidate partial solutions for determining a partial solution. The number of candidate partial solutions evaluated is determined based on the partial solutions limit. The database system combines the plurality of partial solutions to obtain an execution plan for the database query. The database system executes the database query by executing the execution plan.Type: ApplicationFiled: October 24, 2014Publication date: June 4, 2015Inventors: William J. McKenna, Richard L. Cole
-
Publication number: 20150149436Abstract: A database system rewrites database queries based on rewrite constraints specification. The rewrite constraints specification provides directives to the database system to generate temporary tables for storing intermediate results of database queries and rewrite the corresponding database queries in terms of the temporary tables. The subqueries for matching the rewrite constraints specification may be specified in various ways. For example, the rewrite constraints specification may identify the subqueries by using one or more aliases. The rewrite constraints specification may specify a list of tables such that all database queries that join the database tables specified in the rewrite constraints specification are determined to match. The optimizer is able to optimize the rewritten database queries better by getting a better estimate for the statistics describing the temporary tables.Type: ApplicationFiled: November 11, 2014Publication date: May 28, 2015Inventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
-
Publication number: 20150149435Abstract: A database system allows users to specify plan constraint specification that limit choices of execution plans considered by an optimizer of the database system for optimizing database queries. The plan constraint specification specifies attributes of execution plans. The plan constraint specification may identify tables/intermediate results that the plan constraint is applicable to using table names or aliases. The database system applies the plan constraint specification to database queries that match the tables/aliases specified in the plan constraint specification. The database system limits the choice of execution plans evaluated for a database query to execution plans satisfying the attributes specified in an applicable plan constraint specification. The plan constraint specification may specify distribution of a table, a join order for tables, the join mechanism, cardinality of a table or intermediate result, and so on.Type: ApplicationFiled: November 11, 2014Publication date: May 28, 2015Inventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Publication number: 20140089291Abstract: A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.Type: ApplicationFiled: July 21, 2013Publication date: March 27, 2014Applicant: ParAccel, Inc.Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
-
Patent number: 8510291Abstract: A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.Type: GrantFiled: July 11, 2012Date of Patent: August 13, 2013Assignee: Paraccel, Inc.Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Publication number: 20120278307Abstract: A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.Type: ApplicationFiled: July 11, 2012Publication date: November 1, 2012Applicant: PARACCEL, INC.Inventors: RICHARD L. COLE, YIJOU CHEN, WILLIAM J. MCKENNA, SERGEI PERFILOV, AMAN SINHA, EUGENE SZEDENITS, JR.
-
Patent number: 8244715Abstract: A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.Type: GrantFiled: April 9, 2010Date of Patent: August 14, 2012Assignee: Paraccel, Inc.Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
-
Publication number: 20110035368Abstract: A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.Type: ApplicationFiled: April 9, 2010Publication date: February 10, 2011Applicant: ParAccel, Inc.Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
-
Patent number: 7110999Abstract: Technique are provided for maintaining pre-computed aggregate views. A pre-computed aggregate view derived from one or more base tables is received, the pre-computed aggregate view including a pre-computed aggregate table and a view definition, the view definition including aggregate functions that can be any combination of sum, sum distinct, count(*), count, count distinct, min, and max, the view definition further including expressions that may be nullable. Changes to the one or more base tables are received, the changes being represented as insertions and deletions and being non-minimal. A set of incremental modifications to the pre-computed aggregate table are derived and applied based on the changes to the one or more base tables, wherein modifications may include any combination of inserts, deletes, and updates.Type: GrantFiled: February 13, 2004Date of Patent: September 19, 2006Assignee: International Business Machines CorporationInventors: Latha S. Colby, William J. McKenna, David G. Wilhite, Jr.
-
Publication number: 20040193626Abstract: Technique are provided for maintaining pre-computed aggregate views. A pre-computed aggregate view derived from one or more base tables is received, the pre-computed aggregate view including a pre-computed aggregate table and a view definition, the view definition including aggregate functions that can be any combination of sum, sum distinct, count(*), count, count distinct, min, and max, the view definition further including expressions that may be nullable. Changes to the one or more base tables are received, the changes being represented as insertions and deletions and being non-minimal. A set of incremental modifications to the pre-computed aggregate table are derived and applied based on the changes to the one or more base tables, wherein modifications may include any combination of inserts, deletes, and updates.Type: ApplicationFiled: February 13, 2004Publication date: September 30, 2004Inventors: Latha S. Colby, William J. McKenna, David G. Wilhite