System and method for batch query processing
US-9262476-B2 · Feb 16, 2016 · US
US9720949B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9720949-B2 |
| Application number | US-201414271218-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 6, 2014 |
| Priority date | Nov 22, 2013 |
| Publication date | Aug 1, 2017 |
| Grant date | Aug 1, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Client-side partition-aware batch insert operations are presented. For example, a server generates partition metadata, which is provided to a client. The client uses the partition metadata to determine the database nodes to which to send batch insert requests. For example, the client divides batch insert data, such as records for a partitioned table, among multiple database nodes having partitions of the table. The client issues batch insert requests to the respective database nodes for execution. When executed by the database nodes, batch insert operations can be performed in parallel.
Opening claim text (preview).
We claim: 1. One or more tangible computer-readable media storing computer-executable instructions for causing a client programmed thereby to perform a method comprising: with the client, receiving a batch insert request comprising a plurality of insert operations for a partitioned table; with the client, splitting the plurality of insert operations into a plurality of operation batches according to partition metadata, wherein the partition metadata indicates how to partition the plurality of insert operations between a plurality of database nodes; and from the client, issuing the plurality of operation batches to the plurality of database nodes for execution according to the partition metadata. 2. The one or more computer-readable media of claim 1 wherein the splitting includes, for an insert operation of the plurality of insert operations: determining a database node of the database nodes; and adding the insert operation to an operation batch of the plurality of operation batches that is for the determined database node. 3. The one or more computer-readable media of claim 1 wherein the splitting includes, for an insert operation of the plurality of insert operations: determining a location; and adding the insert operation to an operation batch of the plurality of operation batches that is for the location. 4. The one or more computer-readable media of claim 1 wherein the splitting includes, for an insert operation of the plurality of insert operations: based on partitioning criteria for one or more data values of the insert operation, selecting one of the database nodes or a location. 5. The one or more computer-readable media of claim 4 wherein the selecting uses a hash key calculated from the one or more data values using the partitioning criteria. 6. The one or more computer-readable media of claim 1 wherein the splitting includes, for an insert operation of the plurality of insert operations: selecting one of the operation batches according to a round-robin pattern. 7. The one or more computer-readable media of claim 6 wherein the method further comprises: from the client, providing, along with the given operation batch, a flag that indicates the given operation batch has already been partitioned and should not be partitioned by the database node. 8. The one or more computer-readable media of claim 1 wherein the issuing depends at least in part on whether the given operation batch has been filled to a batch size. 9. The one or more computer-readable media of claim 1 wherein the issuing depends at least in part on whether a last insert operation of the plurality of insert operations has been processed. 10. The one or more computer-readable media of claim 1 wherein the issuing depends at least in part on whether a timer for the given operation batch has expired. 11. The one or more computer-readable media of claim 1 wherein the method further comprises: with the client, updating the partition metadata to account for changes to one or more of partitioning criteria, the database nodes, or locations for the database nodes. 12. The one or more computer-readable media of claim 1 wherein, after the issuing, the client continues the splitting without waiting for a reply from a server for the operation batch. 13. The one or more computer-readable media of claim 1 wherein a single thread at the client performs the splitting. 14. In a database system that includes a plurality of servers, each server operating a database node, to which a client device can issue requests for insert operations, a server of the plurality of servers, the server comprising a processing unit and memory, wherein the server is adapted to perform a method comprising: with the server, generating partition metadata that indicates how to partition insert operations between the plurality of database nodes, wherein the partition metadata includes partitioning criteria for insert operations, the partition criteria indicating, for the plurality of database nodes, which node is responsible for executing insert operations for particular partitions of a partitioned table; from the server, transferring the partition metadata to a client for use in client-side partition-aware routing, whereby the client issues batched insert operations directly to the plurality of database nodes according to the partition criteria of the partition metadata; and with the server, receiving a batch of insert operations from the client device, the batch of insert operations associated with a batch insert request executable at the plurality of servers, the batch of insert operations being executable at the server. 15. The server of claim 14 wherein the partition metadata is transferred as part of a reply to a request from the client to compile a query. 16. The server of claim 14 wherein the partition metadata is transferred as part of an update to previous partition metadata transferred to the client. 17. The server of claim 14 wherein a query optimizer of the server performs the generating. 18. A method comprising: with a client, receiving a batch insert request comprising a plurality of insert operations for a partitioned table; with the client, splitting the plurality of insert operations into a plurality of operation batches according to partition metadata received from a database server, including, for an insert operation of the plurality of insert operations: based at least in part on the partition metadata, determining, from a plurality of database nodes, a database node indicated for processing the insert operation; and adding the insert operation to the operation batch of the plurality of operation batches that is associated with the indicated database node; and from the client, after a given operation batch of the plurality of operation batches has been filled to a batch size, issuing the operation batch to the indicated node for the given operation batch for execution. 19. The method of claim 18 wherein the determining uses round-robin partitioning or hash-based partitioning. 20. The method of claim 18 wherein a single thread at the client performs the splitting, and wherein, after the issuing, the client continues the splitting without waiting for a reply from a server for the operation batch.
Updating · CPC title
Bulk updating operations (data conversion details G06F16/258) · CPC title
Physics · mapped topic
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.