Collision avoidance in bidirectional database replication
First Claim
1. A method of avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are ready to be committed, but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the method comprising:
- (a) pausing each transaction being executed in a database of an originating node prior to a commit operation for the transaction;
(b) entering into the table at the originating node, indicia of the initiated transactions that are ready to be committed but that are not yet committed, and assigning a ready to commit token to the transaction;
(c) the transaction transmitter at the originating node sending the ready to commit tokens in the table of the originating node to the one or more other nodes;
(d) determining at each of the one or more receiving nodes whether the database at the receiving node is prepared for a commit operation for the transactions corresponding to each of the received ready to commit tokens, and, if so, the transaction transmitter in each of the other nodes sends back the ready to commit tokens to the respective originating nodes; and
(e) executing the commit operation of the transaction in the database of the originating node only upon receipt from each of the other nodes in the system of the ready to commit token originally sent from the originating node for the transaction, wherein the commit operation for each transaction in the system is paused so as to allow all of the nodes in the system to prepare for the commit and thereby avoid collisions at all of the nodes in the system.
7 Assignments
0 Petitions
Accused Products
Abstract
A bidirectional database replication system includes a plurality of nodes. Each transaction at an originating node is paused prior to a commit operation. Ready to commit tokens are sent to the other nodes in the system to determine if the other nodes are prepared for the commit operation for the paused transaction. If all of the ready to commit tokens properly return to the originating node from the other nodes, thereby indicating that the other nodes are prepared for the commit operation, then the transaction is commited. For lengthy transactions, ready to sync tokens are assigned at one or more predesignated intermediate points in the transaction, and propagate throughout the system in a similar manner. The transaction continues to execute as long as all ready to sync tokens properly return to the originating node. The pause-before-commit and sync point schemes are used to avoid collisions at any of the nodes.
15 Citations
36 Claims
-
1. A method of avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are ready to be committed, but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the method comprising:
-
(a) pausing each transaction being executed in a database of an originating node prior to a commit operation for the transaction;
(b) entering into the table at the originating node, indicia of the initiated transactions that are ready to be committed but that are not yet committed, and assigning a ready to commit token to the transaction;
(c) the transaction transmitter at the originating node sending the ready to commit tokens in the table of the originating node to the one or more other nodes;
(d) determining at each of the one or more receiving nodes whether the database at the receiving node is prepared for a commit operation for the transactions corresponding to each of the received ready to commit tokens, and, if so, the transaction transmitter in each of the other nodes sends back the ready to commit tokens to the respective originating nodes; and
(e) executing the commit operation of the transaction in the database of the originating node only upon receipt from each of the other nodes in the system of the ready to commit token originally sent from the originating node for the transaction, wherein the commit operation for each transaction in the system is paused so as to allow all of the nodes in the system to prepare for the commit and thereby avoid collisions at all of the nodes in the system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An article of manufacture for avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are ready to be committed, but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the article of manufacture comprising a computer-readable medium holding computer-executable instructions for performing a method comprising:
-
(a) pausing each transaction being executed in a database of an originating node prior to a commit operation for the transaction;
(b) entering into the table at the originating node, indicia of the initiated transactions that are ready to be committed but that are not yet committed, and assigning a ready to commit token to the transaction;
(c) the transaction transmitter at the originating node sending the ready to commit tokens in the table of the originating node to the one or more other nodes;
(d) determining at each of the one or more receiving nodes whether the database at the receiving node is prepared for a commit operation for the transactions corresponding to each of the received ready to commit tokens, and, if so, the transaction transmitter in each of the other nodes sends back the ready to commit tokens to the respective originating nodes; and
(e) executing the commit operation of the transaction in the database of the originating node only upon receipt from each of the other nodes in the system of the ready to commit token originally sent from the originating node for the transaction, wherein the commit operation for each transaction in the system is paused so as to allow all of the nodes in the system to prepare for the commit and thereby avoid collisions at all of the nodes in the system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are ready to be committed, but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the apparatus comprising:
-
(a) means for pausing each transaction being executed in a database of an originating node prior to a commit operation for the transaction;
(b) means for entering into the table at the originating node, indicia of the initiated transactions that are ready to be committed but that are not yet committed, and assigning a ready to commit token to the transaction, the transaction transmitter at the originating node sending the ready to commit tokens in the table of the originating node to the one or more other nodes;
(c) means for determining at each of the one or more receiving nodes whether the database at the receiving node is prepared for a commit operation for the transactions corresponding to each of the received ready to commit tokens, and, if so, the transaction transmitter in each of the other nodes sends back the ready to commit tokens to the respective originating nodes; and
(d) means for executing the commit operation of the transaction in the database of the originating node only upon receipt from each of the other nodes in the system of the ready to commit token originally sent from the originating node for the transaction, wherein the commit operation for each transaction in the system is paused so as to allow all of the nodes in the system to prepare for the commit and thereby avoid collisions at all of the nodes in the system. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A method of avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are at one or more predesignated intermediate points in the transaction but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the method comprising:
-
(a) entering into the table at the originating node, indicia of the initiated transactions that are at one or more predesignated intermediate points in the transaction but are not yet committed, and assigning a ready to sync token to the transaction at each of the predesignated intermediate points;
(b) the transaction transmitter at the originating node sending the ready to sync tokens in the table of the originating node to the one or more other nodes;
(c) determining at each of the one or more receiving nodes whether the database at the receiving node is prepared to properly process the transaction up to the intermediate point associated with the respective ready to sync token, and, if so, the transaction transmitter in each of the other nodes sends back the ready to sync tokens to the respective originating nodes; and
(d) stopping the execution of a transaction in the system if the originating node fails to receive back a ready to sync token from at least one of the other nodes in the system for any of the predesignated intermediate points, wherein the transaction continues to execute as long as all ready to sync tokens properly return to the originating node, thereby indicating that no collisions should occur at any of the nodes in the system up to the most recent intermediate point in the transaction. - View Dependent Claims (26, 27, 28)
-
-
29. An article of manufacture for avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are at one or more predesignated intermediate points in the transaction but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the article of manufacture comprising a computer-readable medium holding computer-executable instructions for performing a method comprising:
-
(a) entering into the table at the originating node, indicia of the initiated transactions that are at one or more predesignated intermediate points in the transaction but are not yet committed, and assigning a ready to sync token to the transaction at each of the predesignated intermediate points;
(b) the transaction transmitter at the originating node sending the ready to sync tokens in the table of the originating node to the one or more other nodes;
(c) determining at each of the one or more receiving nodes whether the database at the receiving node is prepared to properly process the transaction up to the intermediate point associated with the respective ready to sync token, and, if so, the transaction transmitter in each of the other nodes sends back the ready to sync tokens to the respective originating nodes; and
(d) stopping the execution of a transaction in the system if the originating node fails to receive back a ready to sync token from at least one of the other nodes in the system for any of the predesignated intermediate points, wherein the transaction continues to execute as long as all ready to sync tokens properly return to the originating node, thereby indicating that no collisions should occur at any of the nodes in the system up to the most recent intermediate point in the transaction. - View Dependent Claims (30, 31, 32)
-
-
33. An apparatus for avoiding collisions in a bidirectional database replication system including a plurality of nodes connected via communication media in a topology, each node including (i) a database, (ii) a table that stores indicia of initiated transactions that are at one or more predesignated intermediate points in the transaction but are not yet committed, and (iii) a transaction transmitter which sends selected transactions posted to the database and table entries to one or more other nodes, each transaction being one or more transaction steps or transaction operations, the apparatus comprising:
-
(a) means for entering into the table at the originating node, indicia of the initiated transactions that are at one or more predesignated intermediate points in the transaction but are not yet committed, and assigning a ready to sync token to the transaction at each of the predesignated intermediate points, the transaction transmitter at the originating node sending the ready to sync tokens in the table of the originating node to the one or more other nodes;
(b) means for determining at each of the one or more receiving nodes whether the database at the receiving node is prepared to properly process the transaction up to the intermediate point associated with the respective ready to sync token, and, if so, the transaction transmitter in each of the other nodes sends back the ready to sync tokens to the respective originating nodes; and
(d) means for stopping the execution of a transaction in the system if the originating node fails to receive back a ready to sync token from at least one of the other nodes in the system for any of the predesignated intermediate points, wherein the transaction continues to execute as long as all ready to sync tokens properly return to the originating node, thereby indicating that no collisions should occur at any of the nodes in the system up to the most recent intermediate point in the transaction. - View Dependent Claims (34, 35, 36)
-
Specification