Method and apparatus for database query decomposition
First Claim
1. A database query system configured for use with a database management system, said database management system including a standard interface configured to receive database queries, the query system comprising:
- a parallel interface configured to receive a first database query; and
a query decomposer configured to;
detect a decomposition directive corresponding to the received database query;
generate a plurality of subqueries from the received first database query, wherein said subqueries correspond to said directive; and
convey said plurality of subqueries in parallel to the standard interface of the database management system;
wherein said directive is embedded within a comment.
0 Assignments
0 Petitions
Accused Products
Abstract
An improved system for database query processing by means of “query decomposition” intercepts database queries prior to processing by a database management system (“DBMS”). The system decomposes at least selected queries to generate multiple subqueries for application, in parallel, to the DBMS, in lieu of the intercepted query. Responses by the DBMS to the subqueries are assembled by the system to generate a final response. The system also provides improved methods and apparatus for storage and retrieval of records from a database utilizing the DBMS'"'"'s cluster storage and index retrieval facilitates, in combination with a smaller-than-usual hash bucket size.
-
Citations
26 Claims
-
1. A database query system configured for use with a database management system, said database management system including a standard interface configured to receive database queries, the query system comprising:
-
a parallel interface configured to receive a first database query; and
a query decomposer configured to;
detect a decomposition directive corresponding to the received database query;
generate a plurality of subqueries from the received first database query, wherein said subqueries correspond to said directive; and
convey said plurality of subqueries in parallel to the standard interface of the database management system;
wherein said directive is embedded within a comment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
receive results from said database management system generated in response to said subqueries; and
generate an assembled result representative of a response to said first database query.
-
-
3. The system of claim 1, wherein said first database query is directed to said standard interface, and wherein receiving the first database query by the parallel interface comprises intercepting the first database query.
-
4. The system of claim 1, wherein said decomposer is configured to generate said subqueries in response to detecting said first database query is decomposable.
-
5. The system of claim 4, wherein said decomposer is further configured to route a second database query received by said parallel interface directly to said standard interface without decomposing said second database query, in response to determining said second database query is non-decomposable.
-
6. The system of claim 1, wherein the database management system is coupled to a database comprising multiple partitions, each of said partitions being independently accessible.
-
7. The system of claim 1, wherein generating said plurality of subqueries comprises generating a separate thread corresponding to each of said subqueries.
-
8. The system of claim 7, wherein each thread of said threads corresponding to said subqueries is executed in parallel on separate processors.
-
9. A computer system comprising:
-
a processor;
a storage element; and
a database system configured to;
receive a first database query;
detect a decomposition directive corresponding to the received database query;
generate a plurality of subqueries from the received first database query, wherein said subqueries correspond to said directive; and
convey said plurality of subqueries in parallel to a database management system;
wherein said directive is embedded within a comment. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
receive results from said database management system generated in response to said subqueries; and
generate an assembled result representative of a response to said first database query.
-
-
11. The system of claim 9, wherein said first database query is directed to said standard interface, and wherein receiving the first database query by the parallel interface comprises intercepting the first database query.
-
12. The system of claim 9, wherein said decomposer is configured to generate said subqueries in response to detecting said first database query is decomposable.
-
13. The system of claim 12, wherein said decomposer is further configured to route a second database query received by said parallel interface directly to said standard interface without decomposing said second database query, in response to determining said second database query is non-decomposable.
-
14. The system of claim 9, wherein the database management system is coupled to a database comprising multiple partitions, each of said partitions being independently accessible.
-
15. The system of claim 9, wherein generating said plurality of subqueries comprises generating a separate thread corresponding to each of said subqueries.
-
16. The system of claim 15, wherein each thread of said threads corresponding to said subqueries is executed in parallel on separate processors.
-
17. A computer system comprising:
-
a processor;
a storage element; and
a database system configured to;
receive a first database query;
detect a decomposition directive corresponding to the received database query;
generate a plurality of subqueries from the received first database query, wherein said subqueries correspond to said directive; and
convey said plurality of subqueries in parallel to a database management system. - View Dependent Claims (18, 19, 21, 22, 23, 24, 25, 26)
receive results from said database management system generated in response to said subqueries; and
generate an assembled result representative of a response to said first database query.
-
-
21. The system of claim 18, wherein said decomposer is configured to generate said subqueries in response to detecting said first database query is decomposable.
-
22. The system of claim 21, wherein said decomposer is further configured to route a second database query directly to said database management system without decomposing said second database query, in response to determining said second database query is non-decomposable.
-
23. The system of claim 17, wherein the database management system is coupled to a database comprising multiple partitions, each of said partitions being independently accessible.
-
24. The system of claim 23, wherein said database comprises data stored on said storage element.
-
25. The system of claim 23, wherein said database comprises data stored on a plurality of storage elements, each said partition corresponds to a separate storage element of said plurality of storage elements.
-
26. The system of claim 17, wherein generating said plurality of subqueries comprises generating a separate thread corresponding to each of said subqueries.
-
20. A computer readable medium comprising program instructions configured to perform database operations, said program instructions executable to:
-
receive a first database query;
detect a decomposition directive corresponding to the received database query;
generate a plurality of subqueries from the received first database query, wherein said subqueries correspond to said directive; and
convey said plurality of subqueries in parallel to a standard interface of a database management system;
wherein said directive is embedded within a comment.
-
Specification