Peer-to-peer syncing in a decentralized environment
First Claim
1. A synchronization method, comprising:
- associating a first atom with a first copy of a datum in a first store, the first atom comprising a first identifier that represents a first version vector for the first datum, the first version vector identifying one or more stores where the first copy of the datum was modified;
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 represented by the first atom to the second version vector represented by a second atom that comprises a second identifier that represents a second version vector for the second datum, the cross-referencing comprising looking up the first atom and the second atom in a table that maps atoms in the first store to atoms in 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.
0 Assignments
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.
152 Citations
16 Claims
-
1. A synchronization method, comprising:
-
associating a first atom with a first copy of a datum in a first store, the first atom comprising a first identifier that represents a first version vector for the first datum, the first version vector identifying one or more stores where the first copy of the datum was modified; 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 represented by the first atom to the second version vector represented by a second atom that comprises a second identifier that represents a second version vector for the second datum, the cross-referencing comprising looking up the first atom and the second atom in a table that maps atoms in the first store to atoms in 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 (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable device having computer executable instructions stored thereon for performing a method of synchronizing a datum between a plurality of stores, the computer executable instructions for causing a processor to:
-
associate a first atom with a first copy of a datum in a first store, the first atom comprising a first identifier that represents a first version vector for the first datum, the first version vector identifying one or more stores where the first copy of the datum was modified; compare 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 represented by the first atom to the second version vector represented by a second atom that comprises a second identifier that represents a second version vector for the second datum, the cross-referencing comprising looking up the first atom and the second atom in a table that maps atoms in the first store to atoms in the second store; determine from the comparison whether the first version vector is subordinate to or dominant over the second version vector; and update the copies of the datum based on the determination. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. 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 where the datum was modified, and each of the one or more atoms comprising a separate identifier that represents each of the one or more version vectors; 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; 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 comprising an identifier that represents the second version vector, the cross-referencing comprising looking up the first atom and the second atom in a table that maps atoms in the first store to atoms in the second store, 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.
-
Specification