Dynamic priority-based query scheduling
AssigneeVMware, Inc.
InventorsZhenmin Li, Chengdu Huang, Jay A. Patel
Life of this patent
Estimating the term…
Abstract
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.
Claims24
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.
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.
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.
Dependencies are inferred from the claim text.