SYSTEM-WIDE QUERY OPTIMIZATION
First Claim
Patent Images
1. A system comprising:
- a first computing node configured to operate a first execution engine, the first execution engine comprising a first partition of a partitioned data set;
the first computing node configured to operate a first query optimizer operable to determine a first plan of executing a query on the first execution engine, the query directed to the partitioned data set;
a second computing node configured to operate a second execution engine, the second execution engine comprising a second partition of the partitioned data set;
the second computing node configured to operate a second query optimizer operable to determine a second plan of executing the query on the second execution engine; and
an optimizer configured to determine whether the first plan of executing the query or the second plan of executing the query should be used to execute the query on the first and second execution engine.
1 Assignment
0 Petitions
Accused Products
Abstract
A locally optimized plan for executing a command using a sequence of steps can be determined for a single computing node. However, the locally optimized sequence of steps may not be optimized for a combined system comprising multiple computing nodes, any one of which may be tasked with executing the command. A plan that is optimized for the combined system may be determined by comparing the predicted cost of locally optimized plans for computing nodes in the combined system.
114 Citations
28 Claims
-
1. A system comprising:
-
a first computing node configured to operate a first execution engine, the first execution engine comprising a first partition of a partitioned data set; the first computing node configured to operate a first query optimizer operable to determine a first plan of executing a query on the first execution engine, the query directed to the partitioned data set; a second computing node configured to operate a second execution engine, the second execution engine comprising a second partition of the partitioned data set; the second computing node configured to operate a second query optimizer operable to determine a second plan of executing the query on the second execution engine; and an optimizer configured to determine whether the first plan of executing the query or the second plan of executing the query should be used to execute the query on the first and second execution engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for executing a database query comprising:
-
receiving information indicative of a first estimated cost of executing a first set of instructions for executing the database query on a first computing node, the first set of instructions performing the database query in a manner determined by the first computing node; receiving information indicative of a second estimated cost of executing a second set of instructions for executing the database query on a second computing node, the second set of instructions performing the database query in a manner determined by the second computing node; and determining whether to use the first or second set of instructions for performing the database query on at least one of the first and second computing node by comparing the first and second estimated costs. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable storage medium having stored thereon computer instructions that, upon execution by a computing device, cause the computing device to at least:
-
receive an estimate of a first cost of performing a query, the first cost comprising a determination of the estimated cost of performing a first set of instructions in a first computing node; estimate a second cost of performing the query, the second estimated cost comprising a determination of the estimated cost of performing a second set of instructions on a second computing node; compare the first cost with the second cost after adjusting for the relative characteristics of the first and second computing nodes and determine that the first set of instructions is preferable for performing the query on the first and second computing nodes. - View Dependent Claims (22, 23)
-
-
24. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by a computing device, cause the computing device to at least:
-
obtain, from a query optimizer, a first plan for executing a query on a first computing node; obtain, from a query optimizer, a second plan for executing the query on a second computing node; compare the predicted costs of executing the first and second plans for executing the query; based on the comparison, determine which of the first or second plans for executing the query is preferred; and send information indicative of the preferred first or second plan for executing a query. - View Dependent Claims (25, 26, 27, 28)
-
Specification