METHODS AND SYSTEMS FOR RUN-TIME SCHEDULING DATABASE OPERATIONS THAT ARE EXECUTED IN HARDWARE
First Claim
1. A method for scheduling database tasks for a query, said method comprising:
- receiving at least a portion of a query execution plan comprising a set of fragments with respective tasks having corresponding database virtual address ranges;
mapping the database virtual address ranges to a set of memory pages;
requesting respective locks for the set of memory pages;
locking memory pages for the selected tasks;
marking one or more of the tasks as being ready for execution based on whether locks have been granted for all of the memory page requests; and
scheduling one or more tasks for execution when locks have been obtained for all of its memory pages.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a run-time scheduler that schedules tasks for database queries on one or more execution resources in a dataflow fashion. In some embodiments, the run-time scheduler may comprise a task manager, a memory manager, and hardware resource manager. When a query is received by a host database management system, a query plan is created for that query. The query plan splits a query into various fragments. These fragments are further compiled into a directed acyclic graph of tasks. Unlike conventional scheduling, the dependency arc in the directed acyclic graph is based on page resources. Tasks may comprise machine code that may be executed by hardware to perform portions of the query. These tasks may also be performed in software or relate to I/O.
-
Citations
75 Claims
-
1. A method for scheduling database tasks for a query, said method comprising:
-
receiving at least a portion of a query execution plan comprising a set of fragments with respective tasks having corresponding database virtual address ranges; mapping the database virtual address ranges to a set of memory pages; requesting respective locks for the set of memory pages; locking memory pages for the selected tasks; marking one or more of the tasks as being ready for execution based on whether locks have been granted for all of the memory page requests; and scheduling one or more tasks for execution when locks have been obtained for all of its memory pages. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of overlapping execution of tasks for a query in a dataflow fashion to reduce overall latency of the tasks, said method comprising:
-
receiving at least a portion of a query execution plan comprising a set of fragments with respective tasks that can be executed in one of a hardware accelerator, a software execution module, or an input/output execution module; locking memory pages for the selected tasks; filling output from a first task into the locked memory pages; and starting at least one additional task that consumes the output in one or more of the locked memory pages prior to the locked memory pages being released by the first task. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A system having a plurality of memory resources under a single virtual addressing scheme, said system comprising:
-
at least one host processor having respective memory; at least one hardware accelerator having respective memory; at least one storage subsystem; and at least one memory manager that addresses the memory of the at least one host processor and the at least one storage subsystem along with the memory of the at least one hardware accelerator under a single virtual address space. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A method of ranking columns of a column-store database based on their usage to assist in query processing, said method comprising:
-
identifying columns having at least one of a predetermined characteristic; ranking the identified columns based on the at least one predetermined characteristic; determining usage of all the columns in the column-store database; and updating rankings of all the columns based on their usage. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. A method of handling a disruption in dataflow execution of tasks by a hardware accelerator for a database system, said method comprising:
-
determining a disruption that occurred in a dataflow execution of tasks by the hardware accelerator; identifying a cause of the disruption; and resolving the disruption based on its cause. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 67, 68, 69, 70, 71, 72, 73, 74, 75)
-
-
64. A method of prefetching memory pages for a task of a query, said method comprising:
-
predicting a memory page to be processed for a future task; determining when an input/output execution module has available capacity; prefetching at least a portion of the memory page based on the available capacity of the input/output execution module. - View Dependent Claims (65, 66)
-
Specification