Dynamically assigning queries to secondary query processing resources

US11868359B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11868359-B2
Application numberUS-202217722222-A
CountryUS
Kind codeB2
Filing dateApr 15, 2022
Priority dateJun 25, 2019
Publication dateJan 9, 2024
Grant dateJan 9, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11868359B2 cover?
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 eval…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/2458. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 09 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).