Fair scheduling for mixed-query loads
First Claim
1. A computer-implemented method performed via one or more processors, the method comprising:
- obtaining, via at least one of the one or more processors, a query job for execution by a database management system and a cost estimate for the database management system to execute the query job;
based on the cost estimate, dividing, via at least one of the one or more processors, the query job into a plurality of sub-query tasks for execution by the database management system;
causing, via at least one of the one or more processors, the plurality of sub-query tasks to be executed by the database management system;
after the database management system has finished executing a first sub-query task of the plurality of sub-query tasks, determining, via at least one of the one or more processors, a value of a last result returned by the database management system for the first sub-query task; and
causing, via at least one of the one or more processors, the database management system to initiate execution of a next sub-query task of the plurality of sub-query tasks;
wherein the next sub-query task includes the determined value of the last result returned by the database management system for the first sub-query task;
wherein the first sub-query task includes a rate limiter that limits the number of results returned by the first sub-query task when executed by the database management system.
7 Assignments
0 Petitions
Accused Products
Abstract
A fair scheduling system with methodology for fairly scheduling queries for execution by a database management system. The system obtains query jobs for execution by the database management system and cost estimates to execute the query jobs. The cost estimate can be a number of results the query is expected to return. Based on the cost estimates, the system causes the database management system to execute the query jobs as separately sub-query tasks in a round-robin fashion. By doing so, the execution latency of “low cost” query jobs that return few results is reduced when the query jobs are concurrently executed with “high cost” query jobs that return a large number of results.
-
Citations
18 Claims
-
1. A computer-implemented method performed via one or more processors, the method comprising:
-
obtaining, via at least one of the one or more processors, a query job for execution by a database management system and a cost estimate for the database management system to execute the query job; based on the cost estimate, dividing, via at least one of the one or more processors, the query job into a plurality of sub-query tasks for execution by the database management system; causing, via at least one of the one or more processors, the plurality of sub-query tasks to be executed by the database management system; after the database management system has finished executing a first sub-query task of the plurality of sub-query tasks, determining, via at least one of the one or more processors, a value of a last result returned by the database management system for the first sub-query task; and causing, via at least one of the one or more processors, the database management system to initiate execution of a next sub-query task of the plurality of sub-query tasks; wherein the next sub-query task includes the determined value of the last result returned by the database management system for the first sub-query task; wherein the first sub-query task includes a rate limiter that limits the number of results returned by the first sub-query task when executed by the database management system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. One or more non-transitory computer-readable media storing one or more computer programs which, when executed via one or more processors, causes performance of the steps of:
-
obtaining, via at least one of the one or more processors, a query job for execution by a database management system and a cost estimate for the database management system to execute the query job; based on the cost estimate, dividing, via at least one of the one or more processors, the query job into a plurality of sub-query tasks for execution by the database management system; causing, via at least one of the one or more processors, the plurality of sub-query tasks to be executed by the database management system; after the database management system has finished executing a first sub-query task of the plurality of sub-query tasks, determining, via at least one of the one or more processors, a value of a last result returned by the database management system for the first sub-query task; and causing, via at least one of the one or more processors, the database management system to initiate execution of a next sub-query task of the plurality of sub-query tasks; wherein the next sub-query task includes the determined value of the last result returned by the database management system for the first sub-query task; wherein the first sub-query task includes a rate limiter that limits the number of results returned by the first sub-query task when executed by the database management system. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification