Patent ID: 8051091

Claim:
A computer-implemented method of dynamically partitioning items within a database based on requests to enable multiple threads to process each partition in parallel without having to synchronize partitions, comprising: receiving, at a stateless application program interface (API) of one or more backend servers, a first request to access a first set of items, wherein each item is associated with one or more properties; receiving, at the stateless API, a second request to access a second set of items, the first request and the second request comprising complex processing requests; determining, in response to receiving the first request and the second request, whether items from the first set of items are in the second set of items based on comparing the first set of items and the second set of items; partitioning the first set of items into a plurality of subsets based on the determining, a first subset of the plurality of subsets including items that are in both the first set of items and the second set of items, and a second subset of the plurality of subsets including items that are in only the first set of items; assigning the first subset and the second subset of the plurality of subsets to a first thread and a second thread, respectively; processing the first thread and the second thread in parallel and without synchronization of the first subset and the second subset of the plurality of subsets using the one or more backend servers, wherein each of the one or more backend servers can handle every complex processing request as a result of and through the stateless API; and merging, using the one or more backend servers, the plurality of subsets into the first set of items subsequent to the processing.