Parallel database query processing for non-uniform data sources via buffered access
First Claim
1. A method of executing a database query, the method comprising:
- (a) executing a first portion of a query to dynamically populate a query buffer with records from a data source; and
(b) executing a second portion of the query in parallel using a plurality of threads specified to the query buffer;
wherein the query buffer includes a plurality of entries, wherein executing the first portion of the query includes storing a record in an entry in the query buffer, and wherein executing the second portion of the database query includes, in each thread, retrieving an entry from the query buffer and executing the second portion of the query on a record on the retrieved entry.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus, program product and method utilize a dynamically-populated query buffer to facilitate the handling of at least a portion of a database query in parallel. A query is implemented using at least first and second portions, where the second portion of the query is executed in parallel using a plurality of threads. The first portion of the query is executed to dynamically populate a query buffer with records from a data source, and the plurality of threads that execute the second portion of the query are specified to the query buffer so that the effective data source for the second portion of the query comprises the records that are dynamically populated into the query buffer.
64 Citations
26 Claims
-
1. A method of executing a database query, the method comprising:
-
(a) executing a first portion of a query to dynamically populate a query buffer with records from a data source; and
(b) executing a second portion of the query in parallel using a plurality of threads specified to the query buffer;
wherein the query buffer includes a plurality of entries, wherein executing the first portion of the query includes storing a record in an entry in the query buffer, and wherein executing the second portion of the database query includes, in each thread, retrieving an entry from the query buffer and executing the second portion of the query on a record on the retrieved entry. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising:
-
(a) a memory within which is resident at least a portion of a database; and
(b) program code configured to execute a query on the database, the program code configured to execute a first portion of the query to dynamically populate a query buffer with records from the database, and to execute a second portion of the query in parallel using a plurality of threads specified to the query buffers;
wherein the query buffer includes a plurality of entries, wherein the program code is configured to execute the first portion of the query by storing a record in an entry in the query buffer, and wherein the program code is configured to execute the second portion of the database query by, in each thread, retrieving an entry from the query buffer and executing the second portion of the query on a record on the retrieved entry. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A program product, comprising:
-
(a) program code configured to execute a database query, the program code configured to execute a first portion of the query to dynamically populate a query buffer with records from a data source, and to execute a second portion of the query in parallel using a plurality of threads specified to the query buffer; and
(b) a signal bearing medium bearing the program code;
wherein the query buffer includes a plurality of entries, wherein the program code is configured to execute the first portion of the query by storing a record in an entry in the query buffer, and wherein the program code is configured to execute the second portion of the database query by, in each thread, retrieving an entry from the query buffer and executing the second portion of the query on a record on the retrieved entry. - View Dependent Claims (26)
-
Specification