Method and system for parallelizing database requests
First Claim
1. A method of executing a database request using a server comprising a plurality of processing resources, the method comprising:
- (a) receiving the database request;
(b) transforming the database request into a plurality of sub-requests; and
(c) executing the different ones of the plurality of sub-requests on different ones of the plurality of processing resources, each of the plurality of processing resources operating on respective autonomous data subsets by performing operations without consideration for data in other data subsets;
wherein the respective autonomous data subsets occupy a common address space.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are described for applying the use of shards within a single memory address space. A database request is processed by providing the request from a client to a processor, the processor then distributing the request to multiple threads within a single process but executing in a shared memory address environment, wherein each thread performs the request on a distinct shard, and aggregating the results of the multiple threads being aggregated and returning a final result to the client. By parallelizing operations in this way, the request response time can be reduced and the total amount of communication overhead can be reduced.
-
Citations
20 Claims
-
1. A method of executing a database request using a server comprising a plurality of processing resources, the method comprising:
-
(a) receiving the database request; (b) transforming the database request into a plurality of sub-requests; and (c) executing the different ones of the plurality of sub-requests on different ones of the plurality of processing resources, each of the plurality of processing resources operating on respective autonomous data subsets by performing operations without consideration for data in other data subsets; wherein the respective autonomous data subsets occupy a common address space. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable medium comprising instructions for performing the steps of:
-
providing access to a database distributed into non-overlapping subsets within a memory, directing a plurality of threads, running on a plurality of cores within a common address space, to conduct a request of the database, wherein each thread performs a sub-request in relation a unique subset of the database, and combining results generated by each thread. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system for responding to a database request comprising:
-
a memory for storing database records within a common memory space, a plurality of processing resources residing on a single server and configured to execute a plurality of processing threads in a time-overlapping manner, and a database divided into multiple, non-overlapping subsets within the common memory space; wherein the processing resources are configured to process a database request such that each of the plurality of threads performs a sub-request with respect to a different subset of the database. - View Dependent Claims (14, 15, 16)
-
-
17. A database server comprising:
-
a memory subsystem for storing a plurality of database micro-shards; a client input queue for receiving a database request from a client and for producing a plurality of sub-requests for a corresponding plurality of micro-shards in response to the database request; a plurality of processor cores configured to execute the plurality of sub-requests in a time-overlapping manner; and an aggregation processor for receiving results of execution of the plurality of sub-requests and aggregating the results to produce a final result to be communicated to the client. - View Dependent Claims (18, 19, 20)
-
Specification