Optimized database appliance
First Claim
1. A system for processing a query on a database comprising:
- a database catalog comprising database table locality information, record locality information, execution engine information and characteristics of the system components;
a query optimizer receiving the query and accessing the database catalog to create a query execution plan comprising locality-based database operations, the locality-based database operations in the query execution plan thus specifying a database operation as well as a processor locale from among multiple possible locales for each such database operation;
a central database operation processor providing a first execution engine as a first type of locale for executing database operations as specified by the query execution plan, by performing at least a portion of the locality-based database operations as specified by the query execution plan and distributing at least some other portions of the locality-based database operations as a subplan;
a second database operation processor providing a second execution engine as a second locale for executing portions of the query execution plan as specified by the subplan received from the central database operation processor, wherein the second execution engine locale has at least some different operation processing capabilities than the first execution engine locale, to provide a second type of locale for executing database operations;
a storage unit storing at least a portion of database tables and records connected to at least one of the central database operation processor and the second database operation processor;
a data communications network connecting the central database operation processor to the second database operation processor;
program means for comparing the processing capabilities of the first and second locale types for the database operation; and
means for changing the query execution plan, to direct specific database operations to the locales determined by the means for comparing.
8 Assignments
0 Petitions
Accused Products
Abstract
A system from processing database queries allows for cost and locale based distribution for execution of database queries. The database queries are executed on execution engines that provide flexible configuration and overlapping functionality. The system reduces various costs, including elapsed time, required to perform database queries. The system provides processing of a database query using a database catalog comprising database table locality information, record locality information and execution engine information. A query optimizer receives the query and accesses the database catalog to create a query execution plan comprising locality-based database operations. A central database operation processor providing a first execution engine executes the query execution plan by performing at least a portion of the locality-based database operations and distributing at least a portion of the locality-based database operations as a subplan. A second database operation processor providing a second execution engine executes the subplan received from the central database operation processor. At least one of the database operations can be executed on either the first execution engine or the second execution engine. A storage unit stores at least a portion of database tables and records. A data communications network connects the central database processor to the second database processor.
91 Citations
65 Claims
-
1. A system for processing a query on a database comprising:
-
a database catalog comprising database table locality information, record locality information, execution engine information and characteristics of the system components; a query optimizer receiving the query and accessing the database catalog to create a query execution plan comprising locality-based database operations, the locality-based database operations in the query execution plan thus specifying a database operation as well as a processor locale from among multiple possible locales for each such database operation; a central database operation processor providing a first execution engine as a first type of locale for executing database operations as specified by the query execution plan, by performing at least a portion of the locality-based database operations as specified by the query execution plan and distributing at least some other portions of the locality-based database operations as a subplan; a second database operation processor providing a second execution engine as a second locale for executing portions of the query execution plan as specified by the subplan received from the central database operation processor, wherein the second execution engine locale has at least some different operation processing capabilities than the first execution engine locale, to provide a second type of locale for executing database operations; a storage unit storing at least a portion of database tables and records connected to at least one of the central database operation processor and the second database operation processor; a data communications network connecting the central database operation processor to the second database operation processor; program means for comparing the processing capabilities of the first and second locale types for the database operation; and means for changing the query execution plan, to direct specific database operations to the locales determined by the means for comparing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method for generating a distributed locality-based execution plan comprising:
-
receiving a database query; parsing and validating the database query to produce a query tree; and optimizing the query tree to produce a locality-based execution plan by accessing a database catalog comprising database table locality information, record locality information and execution engine information, the locality-based execution plan thus being a plan containing multiple locality-based database operations, and the plan specifying a processing locale type for each database operation in the plan from among multiple possible database execution engine locale types, with at least one type of database operation being optionally executable on either a first execution engine locale type or a second execution engine locale type, with the first execution engine locale type having at least some different processing capabilities than the second execution engine locale type; executing first portions of the locality-based execution plan on at least one execution engine which is a first type of execution engine, the first portions being designated by the plan as having a locale which specifies the first execution engine locale type; distributing second portions of the locality-based execution plan as a subplan to a second database execution engine which is a second type of execution engine, the second portions designated by the plan as having a locale which specifies the second execution engine locale type; comparing the processing capabilities of the first and second locale types for the database operation; and changing the query execution plan, to direct specific database operations to the locales determined by the step of comparing.
-
-
32. An apparatus for generating a distributed locality-based execution plan comprising:
-
means for receiving a database query; means for parsing and validating the database query to produce a query tree; and means for optimizing the query tree to produce a locality-based execution plan by accessing a database catalog comprising database table locality information, record locality information and execution engine information, the locality-based execution plan thus being a plan containing multiple locality-based database operations, and the plan specifying a processing locale type for each database operation in the plan from among multiple possible database execution engine locale types, with at least one type of database operation being optionally executable on either a first execution engine locale type or a second execution engine locale type, with the first execution engine locale type having at least some different processing capabilities than the second execution engine locale type; executing first portions of the locality-based execution plan on at least one execution engine which is a first type of execution engine, the first portions being designated by the plan as having a locale which specifies the first execution engine locale type; distributing second portions of the locality-based execution plan as a subplan to a second database execution engine which is a second type of execution engine, the second portions designated by the plan as having a locale which specifies the second execution engine locale type; and comparing the processing capabilities of the first and second locale types for the database operation; and changing the query execution plan, to direct specific database operations to the locales determined by the step of comparing.
-
-
33. A computer program product comprising:
-
a computer usable medium for generating a distributed locality-based execution plan; a set of computer program instructions embodied on the computer usable medium, including instructions to; receive a database query; parse and validating the database query to produce a query tree; and optimize the query tree to produce a locality-based execution plan by accessing a database catalog comprising database table locality information, record locality information and execution engine information, the locality-based execution plan thus being a plan containing multiple locality-based database operations, and the plan specifying a processing locale type for each database operation in the plan from among multiple possible database execution engine locale types, with at least one type of database operation being optionally executable on either a first execution engine locale type or a second execution engine locale type, with the first execution engine locale type having at least some different processing capabilities than the second execution engine locale type; executing first portions of the locality-based execution plan on at least one execution engine which is a first type of execution engine, the first portions being designated by the plan as having a locale which specifies the first execution engine locale type; distributing second portions of the locality-based execution plan as a subplan to a second database execution engine which is a second type of execution engine, the second portions designated by the plan as having a locale which specifies the second execution engine locale type; comparing the processing capabilities of the first and second locale types for the database operation; and changing the query execution plan, to direct specific database operations to the locales determined by the step of comparing.
-
-
34. A system for processing a query on a database comprising:
-
a plurality of database operation processor components, with at least two of the database operation processor components having different operation processing capabilities, such that the database operation processor components provide at least two different locales for executing database operations, with the two locales having different operation processing capabilities and such that more than one database operation processor component locale is capable of executing a given selected database operation; a database catalog comprising database table information, database operation processor component locale information, and database operation processor characteristic information; a query optimizer receiving the query and accessing the database catalog to develop a query execution plan, the query execution plan defining a list of database operations to carry out the query, and the query execution plan also defining a respective database operation processor component locale at which to carry out each such database operation in the query execution plan, program means for comparing the processing capabilities of the first and second locale types for the database operation; and means for changing the query execution plan, to direct specific database operations to the locales determined by the means for comparing. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A system for processing a query on a database comprising:
-
a plurality of database operation processor components, with at least two of the database operation processor components have different operation processing capabilities, and such that more than one database operation processor component is capable of executing a given database operation; a database catalog comprising database table information, database operation processor component locale information, and database operation processor characteristic information; a query optimizer receiving the query and accessing the database catalog to develop a query execution plan, the query execution plan defining a list of database operations to carry out the query, and the query execution plan also defining a respective database operation processor component locale for each such database operation from among multiple possible such locales; and wherein at least one of the execution engines dynamically tracks resource utilization during execution of the query, while the database operations are still being executed by the database operation processor components, so that the query plan is dynamically re-optimized while the query plan is being executed, and thereby modifying the locales originally specified by the query execution plan to optimize performance. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. A system for processing a query on a database comprising:
-
a plurality of database operation processor components, with at least two of the database operation processor components having different operation processing capabilities, and such that on more than one database operation processor component is capable of executing a selected database operation; a database catalog comprising database table information, database operation processor component locale information, and database operation processor characteristic information; a query optimizer, running on a first database operation processor component, for receiving the query and accessing the database catalog to develop a query execution plan, the query execution plan defining a list of database operations to carry out the query, the query execution plan also defining a respective database operation processor component locale for each such database operation; wherein the first database operation processor component not only executes portions of the query execution plan designated to be handled itself but also forwards at least a selected portion of the query execution plan to a second database operation processor component having different operation processing capabilities than the first database operation processor component; and wherein the second database operation processor component executes portions of the query execution plan designated for itself, and also forwards other selected portions of the query execution plan to a third database operation component for execution, and further wherein the plurality of the database operation processor components further comprise; a central database operation processor comprising a first execution engine to provide a first one of the database operation components; a second database operation processor comprising a second execution engine to provide a second one of the database operation components; a storage unit storing at least a portion of database tables and records connected to at least one of the central database operation processor and the second database operation processor; and a data communications network connecting the central database operation processor to the second database operation processor wherein either the first execution engine or the second execution engine dynamically reconfigures an assigned execution subplan to redirect one or more operations to the third execution engine, so that the query execution plan is re-optimized while still being executed.
-
Specification