Efficient knowledge representation in data synchronization systems
First Claim
1. A method for synchronizing a set of objects between a first node and a second node of a plurality of nodes connectable via one or more networks, comprising:
- employing a processor to execute computer executable instructions stored on a computer readable medium to perform the following acts;
initiating synchronization of the set of objects between the first node and the second node;
comparing knowledge of the second node concerning the set of objects with knowledge of the first node concerning the set of objects including determining that a conflict exists with respect to respective versions of at least one object of the set of objects maintained by the first and second node;
resolving the conflict by selecting one of the versions to propagate to the plurality of nodes with reference to at least one conflict resolution policy configurable by the first, or second node from a set of conflict resolution policies;
wherein said resolving includes resolving the conflict by selecting one of the versions to propagate to the plurality of nodes with reference to a conflict resolution policy that favors the version originating from the node that has performed the most updates since the last synchronization;
enabling each node to communicate with a database of directives and independently executing the directives wherein the directives include at least one conflict resolution policy.
2 Assignments
0 Petitions
Accused Products
Abstract
A variety of flexible conflict resolution policies are provided for loosely coupled devices to implement according to a variety of different synchronization scenarios. Choosing a conflict resolution policy, such as “Most Frequent Updater,” “Priority,” “PerCent Change,” “Arbiter Deadlock Resolution,” etc., enables devices to select how and when to resolve such synchronization conflicts. In addition, with reference to a conflict log, a user or synchronizing application can roll back synchronization state to a time before a conflict may have arisen, so that the user or application can undo a resolution of a conflict and/or the user or application can apply an alternative conflict resolution policy moving forward from that time.
-
Citations
18 Claims
-
1. A method for synchronizing a set of objects between a first node and a second node of a plurality of nodes connectable via one or more networks, comprising:
employing a processor to execute computer executable instructions stored on a computer readable medium to perform the following acts; initiating synchronization of the set of objects between the first node and the second node; comparing knowledge of the second node concerning the set of objects with knowledge of the first node concerning the set of objects including determining that a conflict exists with respect to respective versions of at least one object of the set of objects maintained by the first and second node; resolving the conflict by selecting one of the versions to propagate to the plurality of nodes with reference to at least one conflict resolution policy configurable by the first, or second node from a set of conflict resolution policies; wherein said resolving includes resolving the conflict by selecting one of the versions to propagate to the plurality of nodes with reference to a conflict resolution policy that favors the version originating from the node that has performed the most updates since the last synchronization; enabling each node to communicate with a database of directives and independently executing the directives wherein the directives include at least one conflict resolution policy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A first node of a plurality of nodes connectable via one or more networks that synchronizes a set of objects between the first node and any second node of the plurality of nodes, comprising:
-
a synchronization component that synchronizes the set of objects between the first node˜
any second node of the plurality of nodes, and detects whether at least conflict exists with respect to respective versions of at least one object of the set of objects maintained by the first and any second node;a conflict log store that stores information representative of the at least one conflict; a synchronization conflict resolution component that enables and executes the resolution of the at least one conflict by selecting one of the versions to propagate to the second node with reference to at least one conflict resolution policy selected by the first node from a plurality of conflict resolution policies; and wherein said synchronization conflict resolution component resolves the at least one conflict by selecting one of the versions to propagate to the second node with reference to a conflict resolution policy that favors the version originating from the node that has made the highest percentage of changes to the at least one object; a synchronization time control component allows an application or user of the first node to restore the at least one object to a time before the detection of the at least one conflict. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A first node of a plurality of nodes connectable via one or more networks that synchronizes a set of objects between the first node and any second node of the plurality of nodes, comprising:
-
a synchronization component that synchronizes the set of objects between the first node any second node of the plurality of nodes by comparing knowledge of the second node concerning the set of objects with knowledge of the first node concerning the set of objects, wherein the synchronization component determines whether at least conflict exists with respect to respective versions of at least one object of the set of objects maintained by the first and any second node, and the resolution of any least conflict through communication with a database of at least one conflict resolution policy; and wherein said synchronization conflict resolution component resolves the at least one conflict by selecting one of the versions to propagate to the second node with reference to a conflict resolution policy that favors the version originating from the node that has made the highest percentage of changes to the at least one object; a conflict log store that stores information representative of the at least one conflict so that the first node can defer resolving the at least one conflict as between the first and any second node at a later time.
-
Specification