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: 11934397
    Abstract: 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: Grant
    Filed: January 31, 2020
    Date of Patent: March 19, 2024
    Assignee: Salesforce, Inc.
    Inventors: Rama Krishna Korlapati, William J. McKenna, John Francis O'Brien
  • Publication number: 20210240710
    Abstract: 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: Application
    Filed: January 31, 2020
    Publication date: August 5, 2021
    Inventors: Rama Krishna Korlapati, William J. McKenna, John Francis O'Brien
  • Patent number: 10628417
    Abstract: 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: Grant
    Filed: October 24, 2014
    Date of Patent: April 21, 2020
    Assignee: ParAccel LLC
    Inventors: William J. McKenna, Richard L. Cole
  • Patent number: 10394807
    Abstract: 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: Grant
    Filed: November 11, 2014
    Date of Patent: August 27, 2019
    Assignee: ParAccel LLC
    Inventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Publication number: 20190236188
    Abstract: 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: Application
    Filed: January 31, 2018
    Publication date: August 1, 2019
    Inventor: William J. McKenna
  • Patent number: 10268638
    Abstract: 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: Grant
    Filed: November 11, 2014
    Date of Patent: April 23, 2019
    Assignee: ParAccel LLC
    Inventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Patent number: 9767150
    Abstract: 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: Grant
    Filed: July 21, 2013
    Date of Patent: September 19, 2017
    Assignee: ParAccel, Inc.
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Patent number: 9665619
    Abstract: 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: Grant
    Filed: September 18, 2015
    Date of Patent: May 30, 2017
    Assignee: Actian Corporation
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Patent number: 9582539
    Abstract: 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: Grant
    Filed: March 13, 2013
    Date of Patent: February 28, 2017
    Assignee: ParAccel, Inc.
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Patent number: 9183254
    Abstract: 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: Grant
    Filed: March 13, 2013
    Date of Patent: November 10, 2015
    Assignee: ParAccel LLC
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Publication number: 20150154256
    Abstract: 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: Application
    Filed: October 24, 2014
    Publication date: June 4, 2015
    Inventors: William J. McKenna, Richard L. Cole
  • Publication number: 20150149436
    Abstract: 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: Application
    Filed: November 11, 2014
    Publication date: May 28, 2015
    Inventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
  • Publication number: 20150149435
    Abstract: 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: Application
    Filed: November 11, 2014
    Publication date: May 28, 2015
    Inventors: William J. McKenna, Richard L. Cole, Yijou Chen, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Publication number: 20140089291
    Abstract: 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: Application
    Filed: July 21, 2013
    Publication date: March 27, 2014
    Applicant: ParAccel, Inc.
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
  • Patent number: 8510291
    Abstract: 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: Grant
    Filed: July 11, 2012
    Date of Patent: August 13, 2013
    Assignee: Paraccel, Inc.
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Publication number: 20120278307
    Abstract: 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: Application
    Filed: July 11, 2012
    Publication date: November 1, 2012
    Applicant: PARACCEL, INC.
    Inventors: RICHARD L. COLE, YIJOU CHEN, WILLIAM J. MCKENNA, SERGEI PERFILOV, AMAN SINHA, EUGENE SZEDENITS, JR.
  • Patent number: 8244715
    Abstract: 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: Grant
    Filed: April 9, 2010
    Date of Patent: August 14, 2012
    Assignee: Paraccel, Inc.
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
  • Publication number: 20110035368
    Abstract: 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: Application
    Filed: April 9, 2010
    Publication date: February 10, 2011
    Applicant: ParAccel, Inc.
    Inventors: Richard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, JR.
  • Patent number: 7110999
    Abstract: 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: Grant
    Filed: February 13, 2004
    Date of Patent: September 19, 2006
    Assignee: International Business Machines Corporation
    Inventors: Latha S. Colby, William J. McKenna, David G. Wilhite, Jr.
  • Publication number: 20040193626
    Abstract: 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: Application
    Filed: February 13, 2004
    Publication date: September 30, 2004
    Inventors: Latha S. Colby, William J. McKenna, David G. Wilhite