Database early parallelism method and system
First Claim
1. A method of parallelizing a database query, comprising:
- dividing a received query on a database table into a number of parallel subqueries, each parallel subquery including a discrete non-overlapping range constraint on a partitioning field of the database table; and
submitting the parallel subqueries to a database management system in place of the received query.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for dividing a received database query into a number of parallel subqueries and then submitting the parallel subqueries to a database management system in place of the received query. During database configuration, an embodiment of the invention ensures that a database table includes a partitioning field populated with random numbers. Each time a record is added to the table, an embodiment fills the partitioning field with a new random number. When a query on the database table is received, an embodiment determines a number of parallel subqueries to submit in place of the received query. Each of the parallel subqueries is constructed based on the initially received query combined with an additional constraint on the partitioning field such that the set of parallel subqueries together span the entire range of the random numbers in the partitioning field, and yet each of the parallel subqueries describes a discrete non-overlapping range of the partitioning field. The constraint on the partitioning field (i.e., the size of each range of random numbers) may be determined by trial queries on the database. Finally, an embodiment submits the parallel subqueries to the database management system in place of the received query.
180 Citations
31 Claims
-
1. A method of parallelizing a database query, comprising:
-
dividing a received query on a database table into a number of parallel subqueries, each parallel subquery including a discrete non-overlapping range constraint on a partitioning field of the database table; and
submitting the parallel subqueries to a database management system in place of the received query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer programmed to parallelize a database query, comprising:
-
means to divide a received query on a database table into a number of parallel subqueries, each parallel subquery including a discrete non-overlapping range constraint on a partitioning field of the database table; and
means to submit the parallel subqueries to a database management system in place of the received query. - View Dependent Claims (12, 13, 14)
-
-
15. A machine-readable medium having stored thereon a plurality of instructions for parallelizing a database query, the plurality of instructions comprising instructions to:
-
divide a received query on a database table into a number of parallel subqueries, each parallel subquery including a discrete non-overlapping range constraint on a partitioning field of the database table; and
submit the parallel subqueries to a database management system in place of the received query. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer system, including:
-
a processor coupled to a network;
an electronic file storage device coupled to the processor; and
a memory coupled to the processor, the memory containing a plurality of executable instructions to implement a method of parallelizing a database query, the method comprising;
dividing a received query on a database table into a number of parallel subqueries, each parallel subquery including a discrete non-overlapping range constraint on a partitioning field of the database table; and
submitting the parallel subqueries to a database management system in place of the received query. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method of parallelizing a computer processing operation, comprising:
-
dividing the operation into a number of packages;
separating each package into a query stage and a processing stage, each query stage including a discrete non-overlapping range constraint on a partitioning field of a database;
submitting all of the query stages to a database management system substantially in parallel; and
providing the results of each query stage to its corresponding processing stage. - View Dependent Claims (31)
-
Specification