System and method for distributed conflict resolution between data objects replicated across a computer network
First Claim
1. In a network comprising a plurality of nodes each of which can make changes to local copies of a replica object and each of which transmit any changes made to other nodes in the network, a method for each node (1) to independently detect conflicts that arise when two or more copies of the replica object are changed to introduce conflicts and (2) to take steps to resolve the conflicts without interrupting normal operation of the network the method comprising the steps of:
- keeping at a local node a local copy of the replica object and a local change history comprising globally unique change numbers that together identify all changes that have been made to said local copy, whether at said local node or at other nodes in the network;
receiving, from another node in the network, at least one message comprising a received copy the replica object and a received change history;
detecting if a conflict exists between said received copy and said local copy and taking steps to resolve any detected conflict without interrupting normal operation of the network by performing at least the steps of;
comparing said received change history with said local change history and declaring a conflict only if one of either said received change history or said local change history does not contain all the changes of the other;
if a conflict is declared then creating a new copy of the replica object that can be changed and transmitted to other replica nodes without interrupting normal operation of the network by performing at least the steps of;
executing a predetermined sequence of steps that deterministically select one of either said received copy or said local copy as a winner copy; and
attaching the copy not selected as the winner copy to the winner copy; and
if a conflict is not declared, then replacing said local copy with said received copy if said received copy contains all changes of said local copy, otherwise discarding said received copy and retaining said local copy.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for distributed conflict resolution between different versions of the same data object which are replicated across a computer network is disclosed. The invention can be utilized with and adapted to any desired replication process. The conflict resolution process allows identification and resolution of conflicts with little or no increased message traffic on the network. The conflict resolution process is independent of the order in which conflicts are resolved and all replica nodes in the enterprise will eventually resolve the conflict in exactly the same manner. The method is adapted for resolution of conflicts between data objects or between objects which define the properties of sets of data objects. The final selection of which version of the object should be maintained and which version of the object should be deleted can be fully automated, completely manual, or a combination of the two.
239 Citations
26 Claims
-
1. In a network comprising a plurality of nodes each of which can make changes to local copies of a replica object and each of which transmit any changes made to other nodes in the network, a method for each node (1) to independently detect conflicts that arise when two or more copies of the replica object are changed to introduce conflicts and (2) to take steps to resolve the conflicts without interrupting normal operation of the network the method comprising the steps of:
-
keeping at a local node a local copy of the replica object and a local change history comprising globally unique change numbers that together identify all changes that have been made to said local copy, whether at said local node or at other nodes in the network; receiving, from another node in the network, at least one message comprising a received copy the replica object and a received change history; detecting if a conflict exists between said received copy and said local copy and taking steps to resolve any detected conflict without interrupting normal operation of the network by performing at least the steps of; comparing said received change history with said local change history and declaring a conflict only if one of either said received change history or said local change history does not contain all the changes of the other; if a conflict is declared then creating a new copy of the replica object that can be changed and transmitted to other replica nodes without interrupting normal operation of the network by performing at least the steps of; executing a predetermined sequence of steps that deterministically select one of either said received copy or said local copy as a winner copy; and attaching the copy not selected as the winner copy to the winner copy; and if a conflict is not declared, then replacing said local copy with said received copy if said received copy contains all changes of said local copy, otherwise discarding said received copy and retaining said local copy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a network comprising a plurality of nodes each of which can make changes to local copies of a replica object and each of which transmit any changes made to other nodes in the network, a method for each node (1) to independently detect conflicts that arise when two or more copies of the replica object are changed to introduce conflicts and (2) to take steps to resolve the conflicts without interrupting normal operation of the network the method comprising the steps of:
-
keeping at a local node a local copy of the replica object and a local change history comprising globally unique change numbers that together identify all changes that have been made to said local copy, whether at said local node or at other nodes in the network; receiving, from another node in the network at least one message comprising a received copy of the replica object and a received change history; comparing said received change history with said local change history and declaring a conflict if one of either said received change history or said local change history does not contain all the changes of the other; performing a predetermined sequence of steps to select a winner copy of the replica object from among the received copy of the replica object and the local copy of the replica object and creating a conflict object by attaching to said winner copy at least the copy of the replica object not selected as the winner copy; making a change to said conflict object; and replicating said change to said conflict object to other nodes in the network. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. In a network comprising a plurality of computer systems interconnected by networking means, each of said computer systems adapted to make changes to local copies of a replica object and transmit any changes made to other computer systems, an article of manufacture for use in a one of the computer systems comprising:
-
program storage means, accessible by a CPU of a local computer system, for storing and providing, to the CPU, program code means, said program code means comprising; means for receiving from other computer systems, via the networking means, at least one message comprising a received copy of a replica object and a received change history identifying changes made to said replica object; means for determining if a conflict exists between a local copy of the replica object and said received copy of the replica object; means for selecting a winner copy of the replica object from among the local copy of the replica object and the received copy of the replica object; and means for attaching to said winner copy at least the copy of the object not selected as the winner copy in order to create a conflict object that can be transferred between the computer systems just like other replica objects. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. An article of manufacture for use in any one of a plurality of computer system, each of which can make changes to local copies of a replica object and each of which transmit any changes made to other computer systems through networking means, said article of manufacture comprising:
program storage means, accessible by CPU of a local computer system, for storing and providing, to the CPU, program code means, said program code means comprising; means for determining if a conflict exists between a local copy of a replica object and a received copy of a replica object, said local copy of the replica object and said received copy of the replica object comprising a plurality of data set properties and one or more time stamps associated with one or more data set properties; means for creating a new copy of the replica object that can be changed and transmitted to other replica nodes without interrupting normal operation of the network comprising; means for selecting a winner copy of the replica object from among the local copy of the replica object and the received copy of the replica object; means for attaching to the winner copy of the replica object, the copy of the replica object not selected as the winner copy; and means for placing in the winning copy of the replica object those properties from the local copy of the replica object and the received copy of the replica object having the latest associated time stamp. - View Dependent Claims (25)
-
26. An article of manufacture for use in any of a plurality of nodes each of which can make changes to local copies of a replica object and each of which transmit any changes made to other nodes in a manner so that each node is able (1) to independently detect conflicts that arise when two or more copies of the replica object are changed to introduce conflicts and (2) to take steps to resolve the conflicts without interrupting normal operation of the network, the article of manufacture comprising:
program storage means for storing and providing program code means, said program code means comprising; means for keeping at a local node a local copy of the replica object and a local change history comprising globally unique change numbers that together identify all changes that have been made to said local copy, whether at said local node or at other nodes in the network; means for receiving, from another node in the network, at least one message comprising a received copy of the replica object and a received change history; means for detecting if a conflict exists between said received copy and said local copy and taking steps to resolve any detected conflict without interrupting normal operation of the network, said means for detecting comprising; means for comparing said received change history with said local chance history; means for declaring a conflict only if one of either said received change history or said local change history does not contain all the changes of the other; means for resolving a declared conflict comprising (1) means for creating a new copy of the replica object that can be changed and transmitted to other replica nodes without interrupting normal operation of the network, said new copy comprising a winner copy the replica object and at least one attached copy of the replica object (2) means for executing a predetermined sequence of steps that deterministically select one of either said received copy or said local copy as said winner copy, and (3) means for attaching the copy not selected as the winner copy to the winner copy; and means for replacing said local copy with said received copy if said received copy contains all changes of said local copy, otherwise discarding said received copy and retaining said local copy.
Specification