Nova Patents
NL2012436A

Fair scheduling for mixed-query loads.

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.

NL2012436A, drawing sheet 1
Sheet 1 of 5

Term

7.5 yearsto projected expiry

Projected expiry 14 March 2034, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

13 claims: 9 independent, 4 dependent

  1. 1
    CONCLUSIONS 1. Method implemented on a computer, comprising:obtaining a computer-executable search job and a cost estimate for performing the search job;determine, on the basis of the cost estimate that exceeds threshold value costs, to divide the search job into a multiple eid of computer-executable sub-search tasks;having each of the plurality of sub-search tasks performed separately by a database management system.
  2. 4
    5. Method according to a preceding claim, further comprising:in response to receiving a request to cancel the search job, removing a job item representing the search job from a job execution queue.
  3. 5
    6. Method according to a preceding claim, further comprising:at a first time, removing a job item representing a first search job from a job execution queue with a front and an end;wherein at the first time point, a sub-search task of the first search job is performed on a first node of the database manus gement system;at a second time that is after the first time: generating a second search job based on the first search job, arranging a job item representing the second search job at the end of the job execution queue, and causing the database management system to initiate execution of a first sub search job of the second search job on a second node of the database management system that is not the first node.
  4. 6
    7. Method according to a preceding claim, further comprising:detecting that a job execution queue, with a front and an end, is full;and arranging a job item that represents the search job at the end of the job execution queue after the job execution queue is no longer full.
  5. 7
    8. One or more computer-readable media that stores instructions that, when executed by one or more computing devices, perform a work according to any of claims 1-7.
  6. 8
    9. One or more computing devices, comprising:means for obtaining a computer-executable search job and a cost estimate for performing the search job;means for determining to divide the search job into a plurality of computer-executable sub-search tasks based on the fact that the cost estimate exceeds threshold cost;means for having each of the plurality of sub-search tasks performed separately by a database management system. -2310. One or more computing devices according to claim 9, wherein the means for having each of the plurality of sub-search tasks performed separately by the database management system comprises: means for arranging a job item representing the search job at the end of a job execution queue with a front and an end;means for removing the job item from the queue after the job item has reached the front of the job execution queue;means for causing the database management system to initiate execution of a first sub-search task from the plurality of sub-search tasks after removing the job item from the queue;means for determining if there are more sub-search tasks from the plurality of sub-search tasks to perform after taking the job item out of the queue;means for re-queuing the job item at the end of the job execution queue in response to determining that there are more sub-search tasks from the plurality of sub-search tasks to perform.
  7. 9
    11. One or more computing devices according to claim 9 or 10, wherein the means for having each of the plurality of sub-search tasks performed separately by the database management system comprises:means to implement the database management system from a first su initiate b-search of the plurality of sub-search tasks, the first sub-search task comprising a rate limiter that limits the number of results returned by the first sub-search task;means for determining a value of a final result returned by the database management system for the first sub-search task after the database management system has finished performing the first sub-search task;means for causing the database management system to initiate execution of a subsequent sub-search task from the plurality of sub-search tasks, wherein the following sub-search task comprises the determined value of the last result returned by the database management system for the first sub-search task.
  8. 10
    12. One or more computing devices according to any of claims 9 to 11, wherein the cost estimate is a number of results that the search is expected to return.
  9. 11
    13. One or more computing devices according to any of claims 9 to 12, further comprising:Means for removing a job item representing the search job from a job execution queue in response to receiving a request to cancel the search job.
  10. 12
    14. One or more computing devices according to any of claims 9 to 13, further comprising:means for removing, at a first time, a job item representing a first search job, from a job execution queue with a front and an end;wherein, at the first time point, a sub-search task of the first search job is performed on a first node of the database management system;means for generating, at a second time that is after the first time, a second search job based on the first search job;rowing means, at the second time after the first time dot, of a job item representing the second search job, at the end of the job execution queue, and means for causing the database management system to initiate execution of a first sub-search task of the second search job at the second time point that is after the first time point on a second node of the database management system that is not the first node.
  11. 13
    15. One or more computing devices according to any of claims 9 to 14, further comprising:means for detecting that a job execution queue, with a front and an end, is full;and means for arranging a job item representing the search job at the end of the job execution queue after the job execution queue is no longer full. 100 104 106 108