Methods and systems for hardware acceleration of database operations and queries
First Claim
1. A method of processing database queries, said method comprising:
- receiving a query on information in a database from a database management system running on a first processor;
determining query fragments that accomplish the query;
selecting a set of the query fragments for offload to a second processor coupled to the first processor, based on their suitability for execution in hardware;
determining machine code database instructions for the selected query fragments;
determining results for the query fragments based on executing the machine code database instructions in the second processor; and
providing the results for the query fragments to the database management system.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a database system that is optimized by using hardware acceleration. The system may be implemented in several variations to accommodate a wide range of queries and database sizes. In some embodiments, the system may comprise a host system that is coupled to one or more hardware accelerator components. The host system may execute software or provide an interface for receiving queries. The host system analyzes and parses these queries into tasks. The host system may then select some of the tasks and translate them into machine code instructions, which are executed by one or more hardware accelerator components. The tasks executed by hardware accelerators are generally those tasks that may be repetitive or processing intensive. Such tasks may include, for example, indexing, searching, sorting, table scanning, record filtering, and the like.
-
Citations
59 Claims
-
1. A method of processing database queries, said method comprising:
-
receiving a query on information in a database from a database management system running on a first processor; determining query fragments that accomplish the query; selecting a set of the query fragments for offload to a second processor coupled to the first processor, based on their suitability for execution in hardware; determining machine code database instructions for the selected query fragments; determining results for the query fragments based on executing the machine code database instructions in the second processor; and providing the results for the query fragments to the database management system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 21, 22, 23, 24, 25, 58, 59)
-
-
10. A system configured to process database queries, said system comprising:
-
a host system running a database management system (DBMS) configured to process queries on information in a database and running a storage engine configured to determine a query plan for the queries based on a set of query fragments, compile at least some of the query fragments query plan into machine code database instructions, and orchestrate execution of the query fragments to determine a result; and a custom computing module, coupled to the host system, comprising a set of dataflow processing elements that are configured to execute the machine code database instructions to access information in the database and return a result to the host system and a memory capable of storing gigabyte portions of the database. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
20. A method of processing queries using hardware acceleration for at least some portion of the queries, said method comprising:
-
receiving a query on information in a database; parsing the query into a set of query fragments; compiling at least some of the query fragments into machine code instructions; transferring the machine code instructions from a host processor to at least one query co-processor; executing the machine code instructions in the at least one query co-processor; and determining a result for the query based on the query fragment results. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. A system configured to process database queries, said system comprising:
-
a custom computing hardware module comprising a set of reconfigurable dataflow processing elements that are configured to execute machine code database instructions to access information from a portion of a database stored in a memory and return a result; and a host system comprising; a database management system (DBMS) configured to process queries on information in the database; and a middleware application, coupled to the DBMS, configured to determine a query plan for the queries, compile at least some parts of the queries into machine code database instructions, schedule execution of parts of the queries in the custom computing hardware module, and provide the results to the DBMS. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
Specification