System and method for replication of distributed databases that span multiple primary nodes
First Claim
1. A method of backing up a distributed database system including a plurality of primary nodes, each with a database and transaction monitor, each primary node configured to participate in at least one distributed transaction, and each primary node having a backup node with a database, the method comprising:
- performing a local backup operation on the database of each backup node to leave on the backup node'"'"'s database only those transactions received as committed or aborted from the backup node'"'"'s primary node; and
performing a global backup operation to undo any committed transaction whose presence causes the backup nodes to primary nodes that participated in the distributed transaction to be inconsistent.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for backing up primary nodes onto backup nodes where the primary nodes can each originate a distributed transaction and can participate in a distributed transaction. The backup nodes, after a primary node failure, undo all transactions whose state is unknown on the backup node and all committed transactions which, if kept, would lead to an inconsistent set of backup nodes. First, committed transactions are undone if commits for them were not received on all back up nodes to the primary nodes that participated in the transaction. Second, all committed transactions that potentially depend on the committed transactions that were undone are also undone. Only those transactions that are provably independent of the committed transactions that were undone are kept. The result is a set of back up nodes which can support operations until the failing primary node is restored.
-
Citations
6 Claims
-
1. A method of backing up a distributed database system including a plurality of primary nodes, each with a database and transaction monitor, each primary node configured to participate in at least one distributed transaction, and each primary node having a backup node with a database, the method comprising:
-
performing a local backup operation on the database of each backup node to leave on the backup node'"'"'s database only those transactions received as committed or aborted from the backup node'"'"'s primary node; and
performing a global backup operation to undo any committed transaction whose presence causes the backup nodes to primary nodes that participated in the distributed transaction to be inconsistent. - View Dependent Claims (2, 3, 4)
-
-
5. A method of determining potential dependency of a second transaction on a first transaction, at least two transaction nodes participating in each transaction, the method comprising:
-
obtaining a first list of the participating nodes of the first transaction;
obtaining a second list of participating nodes of the second transaction, wherein each node participating has an ordered list of transactions that committed on the node; and
if at least one node is common to both lists;
determining an order of commits of the first and second transactions a selected common node based the ordered list of transactions at the selected node;
for each other node common to both lists;
determining an order of commits of the first and second transactions at the other common node based on the ordered list of transactions at the other common node; and
comparing the order of commits of the first and second transaction at the other common node with the order of commits of the two transactions at the selected common node;
if the order of commits at any other common node is different from the order of commits at the selected common node, declaring that the second transaction does not depend on the first transaction; and
otherwise, declaring that there is a potential dependency of the second transaction on the first transaction.
-
-
6. A method of providing a common synchronization point to a plurality of nodes of a distributed transaction system, each node having a master audit trail and one of the primary nodes being designated a master node of the distributed transaction system, comprising:
-
starting a timer;
upon the lapse of a timer, performing a distributed update transaction of a network synchronization file on each primary node by a process on the network master, the synchronization file containing a counter value field that contains a count of the number of distributed update transactions to the synchronization file, a current transaction field for identifying the distributed update transaction that was last counted by the counter field and a previous transaction field for identifying the distributed update transaction prior to the transaction identified in the current transaction field;
committing the distributing update transaction, whereby a commit record is placed in the audit trail for each of the primary nodes; and
continuing at the step of starting the timer.
-
Specification