METHODS AND SYSTEMS FOR GENERATING QUERY PLANS THAT ARE COMPATIBLE FOR EXECUTION IN HARDWARE
First Claim
1. A query compiler, said compiler comprising:
- a processor; and
a memory having program code for configuring the processor to;
receive a SQL query;
determine query fragments needed to perform the SQL query;
determine an execution mode for each of the query fragments, wherein at least one execution mode relates to execution in a hardware accelerator; and
compile query fragments, which will be executed in the hardware accelerator, into respective sets of machine code database instructions, andgrouping the sets of machine code database instructions into tasks that can be executed as a dataflow based on resources of the hardware accelerator.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention generate and optimize query plans that are at least partially executable in hardware. Upon receiving a query, the query is rewritten and optimized with a bias for hardware execution of fragments of the query. A template-based algorithm may be employed for transforming a query into fragments and then into query tasks. The various query tasks can then be routed to either a hardware accelerator, a software module, or sent back to a database management system for execution. For those tasks routed to the hardware accelerator, the query tasks are compiled into machine code database instructions. In order to optimize query execution, query tasks may be broken into subtasks, rearranged based on available resources of the hardware, pipelined, or branched conditionally
-
Citations
31 Claims
-
1. A query compiler, said compiler comprising:
-
a processor; and a memory having program code for configuring the processor to; receive a SQL query; determine query fragments needed to perform the SQL query; determine an execution mode for each of the query fragments, wherein at least one execution mode relates to execution in a hardware accelerator; and compile query fragments, which will be executed in the hardware accelerator, into respective sets of machine code database instructions, and grouping the sets of machine code database instructions into tasks that can be executed as a dataflow based on resources of the hardware accelerator. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 30, 31)
-
-
15. A method for creating query fragments and operations for a query, said method comprising:
-
receiving a SQL query; determining query fragments needed to perform the SQL query; determining an execution mode for each of the query fragments, wherein at least one execution mode relates to execution in a hardware accelerator; compiling query fragments, which will be executed in the hardware accelerator, into respective sets of machine code database instructions; and grouping the sets of machine code database instructions into tasks that can be executed as a dataflow based on resources of the hardware accelerator. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification