Method for streaming transactions in database cluster
First Claim
1. A method for use in a database cluster, wherein the database cluster comprises a plurality of nodes, the method comprising:
- receiving a transaction at a first node to be committed at the first node of the database cluster;
executing the transaction at the first node, wherein the transaction produces a plurality of replication events;
beginning a replication of the transaction at the first node before committing the transaction in the first node by;
dividing the plurality of replication events of the transaction into a plurality of fragments, wherein each of the plurality of fragments comprises one or more replication events;
assigning a set of fragment-specific parameters to each of the plurality of fragments;
communicating the plurality of fragments to a second node of the database cluster one by one as they are prepared in the first node, wherein at least one of the plurality of fragments is communicated before the transaction is committed at the first node;
the method further comprising;
certifying each fragment of the plurality of fragments separately and individually; and
committing the transaction at both first and second nodes when each fragment of the plurality of fragments completes certification successfully.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for use in a database cluster is provided. A transaction is received at a first node of the database cluster. The transaction is executed at the first node, wherein the transaction produces a plurality of replication events. The plurality of replication events of the transaction are divided into a plurality of fragments, each of which comprises one or more replication events. Subsequently, a set of fragment-specific parameters is assigned to each of the plurality of fragments. The plurality of fragments are then communicated to a second node of the database cluster, one by one, as soon as they are prepared in the first node. A transaction is established in the second node to apply the arriving fragments. With this streaming replication method, the replication of the transaction in the first node, can begin early, before the transaction commits in the first node. This will even out the delay of large transaction replication.
24 Citations
22 Claims
-
1. A method for use in a database cluster, wherein the database cluster comprises a plurality of nodes, the method comprising:
-
receiving a transaction at a first node to be committed at the first node of the database cluster; executing the transaction at the first node, wherein the transaction produces a plurality of replication events; beginning a replication of the transaction at the first node before committing the transaction in the first node by; dividing the plurality of replication events of the transaction into a plurality of fragments, wherein each of the plurality of fragments comprises one or more replication events; assigning a set of fragment-specific parameters to each of the plurality of fragments; communicating the plurality of fragments to a second node of the database cluster one by one as they are prepared in the first node, wherein at least one of the plurality of fragments is communicated before the transaction is committed at the first node; the method further comprising; certifying each fragment of the plurality of fragments separately and individually; and committing the transaction at both first and second nodes when each fragment of the plurality of fragments completes certification successfully. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for use in a database cluster, wherein the database cluster comprises a plurality of nodes, the method comprising:
-
beginning reception of a plurality of fragments at a second node of the database cluster, one by one as they are replicated from a transaction to be committed at another node of the database cluster, wherein at least one of the plurality of fragments is received before the transaction is committed at the other node, each of the fragments comprising one or more replication events; the method further comprising, upon receipt of each received fragment; certifying each received fragment separately and individually; identifying a set of fragment-specific parameters associated with the received fragment; determining, from the set of fragment-specific parameters, whether or not a streaming transaction to which the received fragment belongs exists in a transaction pool; and applying the one or more replication events of the received fragment at the second node whilst addressing the streaming transaction to which the fragment belongs; the method still further comprising committing the transaction at the first and second node when each fragment of the plurality of received fragments completes certification successfully, and a last one of the plurality of received fragments includes a fragment-specific parameter comprising a commit flag indicating that all of the plurality of received fragments should be committed. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A computing apparatus comprising:
-
a processor; a memory coupled to the processor; and a network interface coupled to the processor, wherein the processor is configured to; receive a transaction to be committed at a first node of a database cluster; execute the transaction at the first node, wherein the transaction produces a plurality of replication events; and begin a replication of the transaction at the first node before committing the transaction in the first node by; dividing the plurality of replication events of the transaction into a plurality of fragments, wherein each of the plurality of fragments comprises one or more replication events; assigning a set of fragment-specific parameters to each of the plurality of fragments; and communicating the plurality of fragments to one or more second nodes of a database cluster one by one as they are prepared when dividing the plurality of replication events of the transaction, wherein at least one of the plurality of fragments is communicated before the transaction is committed at the first node; wherein the processor is further configured to; certify each fragment of the plurality of fragments separately and individually; and commit the transaction at both the first and second nodes when each fragment of the plurality of fragments completes certification successfully. - View Dependent Claims (13, 14, 15)
-
-
16. A computing apparatus comprising:
-
a processor; a memory coupled to the processor; and a network interface coupled to the processor, wherein the processor is configured to; begin reception of a plurality of fragments one by one as they are replicated from a transaction to be committed at a node of a database cluster, wherein at least one of the plurality of fragments is received before the transaction is committed at the node, each of the fragments comprising one or more replication events; wherein upon receipt of each fragment, the processor is configured to; certify each received fragment separately and individually; identify a set of fragment-specific parameters associated with the received fragment; determine, from the set of fragment-specific parameters, whether or not a streaming transaction to which the received fragment belongs exists in a transaction pool; and apply the one or more replication events of the received fragment whilst addressing the streaming transaction to which the fragment belongs; wherein the processor is further configured to commit the transaction at the apparatus and cause the transaction to be committed at the node when each fragment of the plurality of received fragments completes certification successfully. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A computer program product comprising a non-transitory machine-readable data storage medium having stored thereon program instructions that, when accessed by a processing device, cause the processing device to:
-
receive a transaction to be committed at a first node of a database cluster; execute the transaction at the first node, wherein the transaction produces a plurality of replication events; begin a replication of the transaction at the first node before committing the transaction in the first node by; dividing the plurality of replication events of the transaction into a plurality of fragments, wherein each of the plurality of fragments comprises one or more replication events; assigning a set of fragment-specific parameters to each of the plurality of fragments; and communicating the plurality of fragments to each of one or more second nodes of a database cluster one by one as they are prepared in the first node, wherein at least one of the plurality of fragments is communicated before the transaction is committed at the first node; wherein the computer program product further causes the processing device to; certify each fragment of the plurality of fragments separately and individually; and commit the transaction at the first node and at each of the one or more second nodes of the database cluster when each fragment of the plurality of fragments completes certification successfully and a last one of the plurality of fragments has been assigned a fragment-specific parameter comprising a commit flag indicating that all of the plurality of fragments should be committed. - View Dependent Claims (22)
-
Specification