Multi-replica asynchronous table replication
First Claim
1. A method, implemented at least in part by a coordinator replica node comprising a processing unit and memory, the coordinator replica node being in communication with a follower replica node and a source node, for facilitating asynchronous replication within a database environment using data manipulation language (DML) statements, the method comprising:
- asynchronously receiving a first DML statement for a first transaction from the source node, wherein the source node commits the first transaction without waiting for the first DML statement to be replayed by the coordinator replica node or the follower replica node, the first DML statement being designated for replication at the coordinator replica node and the follower replica node;
asynchronously receiving a second DML statement for a second transaction from the source node, wherein the source node commits the second transaction without waiting for the second DML statement to be replayed by the coordinator replica node or the follower replica node, the second DML statement being designated for replication at the coordinator replica node and the follower replica node;
executing the first DML statement;
precommitting the first transaction at the coordinator replica node;
without waiting for the commit of the first transaction, executing the second DML statement;
receiving a precommit notification for the first transaction from the follower replica node;
committing the first transaction after the first transaction has been precommitted by the coordinator replica node and the coordinator replica node has received the precommit notification for the first transaction from the follower replica node; and
after the first transaction has been committed at the coordinator replica node, sending a postcommit notification for the first transaction to the follower replica node.
1 Assignment
0 Petitions
Accused Products
Abstract
Technologies are described for performing replication within a database environment. Where a database transaction is replicated at multiple replica nodes, a replica node is selected as a coordinator replica node for the transaction. The other replica node or nodes are designated as follower replica nodes for the transaction. A follower replica node sends the coordinator replica node a precommit notification when the follower replica node has precommitted the transaction. The coordinator replica node sends the follower replica node a postcommit notification to commit the transaction when the transaction has been precommitted by all of the replica nodes to which the transaction is to be replicated.
-
Citations
20 Claims
-
1. A method, implemented at least in part by a coordinator replica node comprising a processing unit and memory, the coordinator replica node being in communication with a follower replica node and a source node, for facilitating asynchronous replication within a database environment using data manipulation language (DML) statements, the method comprising:
-
asynchronously receiving a first DML statement for a first transaction from the source node, wherein the source node commits the first transaction without waiting for the first DML statement to be replayed by the coordinator replica node or the follower replica node, the first DML statement being designated for replication at the coordinator replica node and the follower replica node; asynchronously receiving a second DML statement for a second transaction from the source node, wherein the source node commits the second transaction without waiting for the second DML statement to be replayed by the coordinator replica node or the follower replica node, the second DML statement being designated for replication at the coordinator replica node and the follower replica node; executing the first DML statement; precommitting the first transaction at the coordinator replica node; without waiting for the commit of the first transaction, executing the second DML statement; receiving a precommit notification for the first transaction from the follower replica node; committing the first transaction after the first transaction has been precommitted by the coordinator replica node and the coordinator replica node has received the precommit notification for the first transaction from the follower replica node; and after the first transaction has been committed at the coordinator replica node, sending a postcommit notification for the first transaction to the follower replica node. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A server comprising a processing unit and memory, wherein the server is adapted to operate a follower replica node of a database system, the follower replica node being in communication with a coordinator replica node, wherein the memory comprises computer executable instructions that, when executed on the processing unit, cause the server to perform operations for facilitating asynchronous replication within a database environment using data manipulation language (DML) statements, the operations comprising:
-
asynchronously receiving a first DML statement for a first transaction originating at a source node, wherein the source node commits the first transaction without waiting for the first DML statement to be replayed by the coordinator replica node or the following replica node, the first DML statement being designated for replication at the coordinator replica node and the follower replica node; asynchronously receiving a second DML statement for a second transaction originating at the source node, wherein the source node commits the second transaction without waiting for the second DML statement to be replayed by the coordinator replica node or the follower replica node; executing the first DML statement; precommitting the first transaction at the follower replica node; sending a precommit notification for the first transaction to the coordinator replica node; without waiting for the commit of the first transaction, executing the second DML statement; receiving a postcommit notification for the first transaction from the coordinator replica node; and committing the first transaction at the follower replica node after the follower replica node has received the postcommit notification for the first transaction from the coordinator replica node. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. One or more non-transitory tangible computer-readable storage media storing computer-executable instructions for causing a server programmed thereby to perform a method for facilitating asynchronous replication within a database environment using data manipulation language (DML) statements and implementing a replication manager of a database system, the replication manager being in communication with first and second replica nodes, the method comprising:
-
designating the first replica node as a transaction coordinator node for a first transaction comprising a first DML statement, wherein the second replica node is a follower node for the first transaction; asynchronously sending the first DML statement for the first transaction from a source node to the first replica node and the second replica node, wherein the source node may commit the first transaction without waiting for the first DML statement to be executed at the first and second replica nodes; designating the second replica node as a transaction coordinator node for a second transaction comprising a second DML statement, wherein the first replica node is a follower node for the second transaction; asynchronously sending the second DML statement for the second transaction from the source node to the first replica node and the second replica node, wherein the source node may commit the second transaction without waiting for the second DML statement to be executed at the first and second replica nodes; routing a precommit notification for the first transaction from the second replica node to the first replica node, the precommit notification for the first transaction indicating that the first transaction has been precommitted by the second replica node; routing a postcommit notification for the first transaction from the first replica node to the second replica node; routing a precommit notification for the second transaction from the first replica node to the second replica node, the precommit notification for the second transaction indicating that the second transaction has been precommitted by the first replica node; and routing a postcommit notification for the second transaction from the second replica node to the first replica node. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification