Peer-to-Peer Syncing in a Decentralized Environment
First Claim
1. A synchronization method, comprising:
- comparing version vectors when synchronizing a datum between stores, each of the version vectors being associated with a copy of the datum in one of the stores and identifying one or more stores that have modified the associated copy of the datum; and
determining whether a conflict exists if neither one of the version vectors can be determined as subordinate to or dominant over the other version vector based on the version vectors alone,wherein if the conflict exists, the method comprises;
obtaining a resolution of the conflict resolving one of the copies of the datum as being subordinate to or dominant over the other copy of the datum,merging the version vectors from both the subordinate and dominant copies of the datum together into a resulting version vector without appending one of the version vectors to the other, andassociating the resulting version vector with the dominant copy of the datum in both of the stores.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method of synchronizing a datum between a plurality of stores uses version vectors associated with the datum in each store. Each version vector has one or more entries, and each entry has an identifier and a value. The identifier identifies a store that has modified the datum, and the value indicates a number of modifications to the datum made by the store. When synchronizing the datum between stores, the version vectors of the datum are compared to determine whether one version vector is subordinate to another version vector. The datum in the store having the subordinate version vector is then replaced with the datum having the dominant version vector. When compared, a conflict resolution by a user is required if the version vectors are not identical, if the version vectors do not have all the same identifiers, and if one version vector does not contain all of the identifiers with equal or greater values of those in the other version vector.
-
Citations
34 Claims
-
1. A synchronization method, comprising:
-
comparing version vectors when synchronizing a datum between stores, each of the version vectors being associated with a copy of the datum in one of the stores and identifying one or more stores that have modified the associated copy of the datum; and determining whether a conflict exists if neither one of the version vectors can be determined as subordinate to or dominant over the other version vector based on the version vectors alone, wherein if the conflict exists, the method comprises; obtaining a resolution of the conflict resolving one of the copies of the datum as being subordinate to or dominant over the other copy of the datum, merging the version vectors from both the subordinate and dominant copies of the datum together into a resulting version vector without appending one of the version vectors to the other, and associating the resulting version vector with the dominant copy of the datum in both of the stores. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A first device capable of synchronizing, the first device comprising:
-
memory for storing a first copy of a datum and a first version vector associated with the first copy, the first version vector identifying one or more stores that have modified the first copy; a processor in communication with the memory and configured to; compare the first version vector to a second version vector when synchronizing the datum with a second device, the second version vector identifying one or more stores that have modified a second copy of the datum, and determine whether a conflict exists if neither one of the version vectors can be determined as subordinate to or dominant over the other version vector based on the version vectors alone, wherein if the conflict exists, the processor is configured to; obtain a resolution of the conflict resolving one of the copies of the datum as being subordinate to or dominant over the other copy of the datum, and associate a resulting version vector with a resulting copy of the datum in the memory, the resulting version vector merging the first and second version vectors together without appending one of the version vectors to the other, the resulting copy being the copy of the datum resolved as dominant.
-
-
22. A synchronization method, comprising:
-
associating a first atom with a first copy of a datum in a first store, the first atom associated with a first version vector and being consistent with a first scheme of the first store, the first version vector identifying one or more stores that have modified the first copy of the datum; comparing the first version vector with a second version vector when synchronizing the datum between the first store and a second store by cross-referencing the first version vector associated with the first atom to the second version vector associated with a second atom, the second atom being associated with the second copy of the datum and being consistent with a second scheme of the second store; determining from the comparison whether the first version vector is subordinate to or dominant over the second version vector; and updating the copies of the datum based on the determination. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A first device capable of synchronizing, the first device comprising:
-
first memory for storing associations between one or more version vectors and one or more atoms, each of the one or more version vectors identifying one or more stores that have modified the datum; second memory for storing a first copy of a datum associated with a first version vector and a first of the one or more atoms, the first atom being consistent with a first scheme of the first device; and a processor in communication with the first and second memories and configured to; cross-reference the first version vector associated with the first atom to a second version vector associated with a second atom when synchronizing the datum between the first device and a second device, the second atom being consistent with a second scheme of the second device, compare the first version vector to the second version vector, determine from the comparison whether the first version vector is subordinate to or dominant over the second version vector, and handle the first copy of the datum based on the determination.
-
-
32. A synchronization method, comprising:
-
associating a first version vector with a first copy of a datum at a first store, the first version vector including one or more first atoms, each of the one or more atoms identifying one of the stores that have modified the datum, the first atoms being consistent with a first scheme of the first store; comparing the first version vector with a second version vector when synchronizing the datum between the first store and a second store by cross-referencing the first atoms in the first version vector to second atoms in the second version vector, the second atoms being consistent with a second scheme of the second store; determining from the comparison whether of the first version vectors is subordinate to or dominant over the second version vector; and updating the copies of the datum based on the determination. - View Dependent Claims (33, 34)
-
Specification