Dynamic priority-based query scheduling

US9436739B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9436739-B2
Application numberUS-201314106313-A
CountryUS
Kind codeB2
Filing dateDec 13, 2013
Priority dateDec 13, 2013
Publication dateSep 6, 2016
Grant dateSep 6, 2016

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.

Techniques for scheduling query execution are provided. In one embodiment, a computer system can receive a query to be executed and can assign a priority to the query. The computer system can further divide the query into a plurality of sub-queries and can assign a sub-priority to each sub-query, where the sub-priority is based on a resource consumption metric of the query. The computer system can then select, from a plurality of sub-query pools, a sub-query pool that includes sub-queries of queries that have the same priority as the query, and can add the plurality of sub-queries to the selected sub-query pool.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for scheduling query execution, the method comprising: receiving, by a computer system, a query to be executed; assigning, by the computer system, a priority to the query, the priority being identical to priorities assigned to one or more previously received queries; dividing, by the computer system, the query into a plurality of sub-queries; assigning, by the computer system, a sub-priority to each sub-query in the plurality of sub-queries, wherein the sub-priority for each sub-query of the query is identical to each other, and wherein the sub-priority is based on a resource consumption metric of the query that reflects an amount of computing resources consumed due to execution of the query; selecting, by the computer system from a plurality of sub-query pools, a sub-query pool that is associated with the priority of the query, the selected sub-query pool including sub-queries of the one or more previously received queries; and adding, by the computer system, the plurality of sub-queries to the selected sub-query pool. 2. The method of claim 1 further comprising, when a CPU is available for executing a sub-query: identifying a sub-query pool from the plurality of sub-query pools that includes one or more unexecuted sub-queries and is associated with the highest priority; updating the sub-priority for each sub-query in the identified sub-query pool; selecting a sub-query from the identified sub-query pool having the highest sub-priority; and scheduling the selected sub-query for execution on the CPU. 3. The method of claim 1 wherein the resource consumption metric is a relative metric. 4. The method of claim 1 wherein the priority is based on time sensitivity of the query. 5. The method of claim 2 wherein the computer system is configured to keep track of a total number of in-process queries, and wherein if the total number reaches a preconfigured threshold, the computer system is configured to avoid selection of sub-queries from the identified sub-query pool that do not belong to an in-process query. 6. The method of claim 1 wherein data against which the query is to be executed is organized into a plurality of buckets, each bucket including a subset of the data that corresponds to a range within a data dimension. 7. The method of claim 6 wherein each sub-query in the plurality of sub-queries is an instance of the query that is constrained to data within a single bucket. 8. A non-transitory computer readable storage medium having stored thereon software executable by a computer system, the software embodying a method that comprises: receiving a query to be executed; assigning a priority to the query, the priority being identical to priorities assigned to one or more previously received queries; dividing the query into a plurality of sub-queries; assigning a sub-priority to each sub-query in the plurality of sub-queries, wherein the sub-priority for each sub-query of the query is identical to each other, and wherein the sub-priority is based on a resource consumption metric of the query that reflects an amount of computing resources consumed due to execution of the query; selecting, from a plurality of sub-query pools, a sub-query pool that is associated with the priority of the query, the selected sub-query pool including sub-queries of the one or more previously received queries; and adding the plurality of sub-queries to the selected sub-query pool. 9. The non-transitory computer readable storage medium of claim 8 wherein the method further comprises, when a CPU is available for executing a sub-query: identifying a sub-query pool from the plurality of sub-query pools that includes one or more unexecuted sub-queries and is associated with the highest priority; updating the sub-priority for each sub-query in the identified sub-query pool; selecting a sub-query from the identified sub-query pool having the highest sub-priority; and scheduling the selected sub-query for execution on the CPU. 10. The non-transitory computer readable storage medium of claim 8 wherein the resource consumption metric is a relative metric. 11. The non-transitory computer readable storage medium of claim 8 wherein the priority is based on time sensitivity of the query. 12. The non-transitory computer readable storage medium of claim 9 wherein the software is configured to keep track of a total number of in-process queries, and wherein if the total number reaches a preconfigured threshold, the software is configured to avoid selection of sub-queries from the identified sub-query pool that do not belong to an in-process query. 13. The non-transitory computer readable storage medium of claim 8 wherein data against which the query is to be executed is organized into a plurality of buckets, each bucket including a subset of the data that corresponds to a range within a data dimension. 14. The non-transitory computer readable storage medium of claim 13 wherein each sub-query in the plurality of sub-queries is an instance of the query that is constrained to data within a single bucket. 15. A computer system comprising: a processor; and a non-transitory computer readable medium having stored thereon program code that causes the processor to, upon being executed: receive a query to be executed; assign a priority to the query, the priority being identical to priorities assigned to one or more previously received queries; divide the query into a plurality of sub-queries; assign a sub-priority to each sub-query in the plurality of sub-queries, wherein the sub-priority for each sub-query of the query is identical to each other, and wherein the sub-priority is based on a resource consumption metric of the query that reflects an amount of computing resources consumed due to execution of the query; select, from a plurality of sub-query pools, a sub-query pool that is associated with the priority of the query, the selected sub-query pool including sub-queries of the one or more previously received queries; and add the plurality of sub-queries to the selected sub-query pool. 16. The computer system of claim 15 wherein the program code further causes the processor to, when a CPU is available for executing a sub-query: identify a sub-query pool from the plurality of sub-query pools that includes one or more unexecuted sub-queries and is associated with the highest priority; update the sub-priority for each sub-query in the identified sub-query pool; select a sub-query from the identified sub-query pool having the highest sub-priority; and schedule the selected sub-query for execution on the CPU. 17. The computer system of claim 15 wherein the resource consumption metric is a relative metric. 18. The computer system of claim 15 wherein the priority is based on time sensitivity of the query. 19. The computer system of claim 16 wherein the processor is configured to keep track of a total number of in-process queries, and wherein if the total number reaches a preconfigured threshold, the processor is configured to avoid selection of sub-queries from the identified sub-query pool that do not belong to an in-process query. 20. The computer system of claim 15 wherein data against which the query is to be executed is organized into a plurality of buckets, each bucket including a subset of the data that corresponds to a range within a data dimension. 21. The computer system of claim 20 wherein each sub-query in the plurality of sub-queries is an instance of

Assignees

Inventors

Classifications

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 US9436739B2 cover?
Techniques for scheduling query execution are provided. In one embodiment, a computer system can receive a query to be executed and can assign a priority to the query. The computer system can further divide the query into a plurality of sub-queries and can assign a sub-priority to each sub-query, where the sub-priority is based on a resource consumption metric of the query. The computer system …
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/2471. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 06 2016 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).