Selecting resource configurations for query execution
US-2018060394-A1 · Mar 1, 2018 · US
US11868359B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11868359-B2 |
| Application number | US-202217722222-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 15, 2022 |
| Priority date | Jun 25, 2019 |
| Publication date | Jan 9, 2024 |
| Grant date | Jan 9, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A primary query engine may receive a query and determine whether the query is eligible for performance at a secondary query engine. If eligible, the primary query engine may evaluate the availability of the first query engine to perform the query. The first query engine may determine whether to assign the query to the primary query engine or to the secondary query according to availability evaluation. For queries assigned to the secondary query engine, the primary query engine may send a request to the secondary query engine to being processing of the query.
Opening claim text (preview).
What is claimed is: 1. A system, comprising: at least one processor; and a memory, storing program instructions that when executed by the at least one processor, cause the at least one processor to implement a primary query engine for a database; wherein the primary query engine is configured to: receive a query to the database; determine whether the query is eligible to be performed by at least the primary query engine and a secondary query engine, wherein the primary query engine and the secondary query engine are provisioned to perform queries to the database in response to the query or a prior query to the database; and responsive to a determination that the query is eligible to be performed by the primary query engine and the secondary query engine: predict a first execution time for the primary query engine to perform the query and a second execution time for the secondary query engine to perform the query, assign one of the primary query engine or the secondary query engine to begin performing the query based on a comparison between the first execution time and the second execution time, and responsive to an assignment of the query to the secondary query engine, send a request to the secondary query engine to begin performing the query to the database. 2. The system of claim 1 , wherein the primary query engine is further configured to: detect a failure of the query at the second query engine; and responsive to the detection of the failure, perform the query. 3. The system of claim 1 , wherein the primary query engine is further configured to: perform the query at the primary query engine; and return a result from a first one of the primary query engine or secondary query engine to complete the query. 4. The system of claim 1 , wherein the primary query engine and the secondary query engine are a primary processing cluster and a secondary processing cluster respectively implemented as part of a data warehouse service of a provider network, wherein the query is determined to be eligible according to a request that specifies a source of queries to be identified as eligible for performance at the secondary query engine. 5. The system of claim 1 , wherein the secondary query engine queues the query until the secondary query engine is available to begin performing the query. 6. The system of claim 1 , wherein the primary query engine is further configured to reassign the query to the primary query engine to begin performance of the query when the primary query engine becomes available to begin performing the query. 7. A method, comprising: receiving a query to a database at a first query engine; determining, by the first query engine, that the query is eligible to be performed by the first query engine and a second query engine, wherein the first query engine and the second query engine are provisioned to perform queries to the database in response to the query or a prior query to the database; determining, by the first query engine, a first predicted query execution time for the first query engine to perform the query and a second predicted query execution time for the second query engine to perform the query to determine whether to assign the first query engine or the second query engine to perform the query; and responsive to an assignment of the query to the second query engine based on a comparison between the first predicted query execution time and the second predicted query execution time, causing, by the first query engine, the second query engine to begin performing the query to the database. 8. The method of claim 7 , further comprising: determining, by the second query engine, that performance of the query by the second query engine exceeds a performance threshold for the query; and responsive to determining that the performance of the query by the second query engine exceeds the performance threshold, sending, by the second query engine, the query to the first query engine to be performed by the first query engine. 9. The method of claim 7 , further comprising: evaluating an availability of the first query engine and an availability of the second query engine to perform the query to determine whether to assign the first query engine or the second query engine to perform the query; and wherein the assignment of the query to the second query engine is further based on: a comparison between the availability of the first query engine and the availability of the second query engine. 10. The method of claim 9 , wherein evaluating the availability of the first query engine to perform the query to determine whether to assign the query to be performed by the first query engine or the second query engine comprises determining that an execution slot was not available for the query at the first query engine. 11. The method of claim 7 , further comprising: detecting, by the first query engine, availability to perform another query at the second query engine; evaluating, by the first query engine, a queue of waiting queries at the first query engine to select one of the waiting queries to perform at the second query engine; and sending, by the first query engine, a request to the second query engine to perform the selected query. 12. The method of claim 7 , further comprising: queuing, by the first query engine, another query assigned to the second query engine to be performed; determining, by the first query engine, that an execution slot for performing the other query is available at the first query engine; and performing, by the first query engine, the other query at the first query engine instead of at the second query engine. 13. The method of claim 7 , further comprising: receiving an assignment policy for assigning queries to the second query engine; and wherein determining the first predicted query execution time for the first query engine to perform the query and the second predicted query execution time for the second query engine to perform the query to determine whether to assign the first query engine or the second query engine to perform the query is performed according to the assignment policy. 14. The method of claim 7 , further comprising: detecting, by the first query engine, a failure of the query at the second query engine; and responsive to the detection of the failure, performing, by the first query engine, the query. 15. The method of claim 7 , further comprising: performing, by the first query engine, the query at a primary query engine; and returning, by the first query engine, a result from a first one of the primary query engine or a secondary query engine to complete the query. 16. One or more non-transitory, computer-readable storage media, storing program instructions that when executed on or across one or more computing devices cause the one or more computing devices to implement: receiving a query to a database at a first query engine to be performed by the first query engine; evaluating, by the first query engine, an eligibility of the query to be performed by at least the first query engine and a second query engine provisioned in response to the query or a prior query; identifying the query as eligible to be performed by the first query engine and the second query engine according to the evaluation of the eligibility of the query; predict, by the first query engine, a first execution time for the first query engine to perform the query and a second execution time for the second query engine to perform the query; assigning, by the first query engine, the query to the second query engine based on a compar
Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries · CPC title
Intermediate data storage techniques for performance improvement · CPC title
Clustering or classification · CPC title
using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12) · CPC title
considering the load · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.