Peer-to-peer N-way syncing in decentralized environment
First Claim
1. A computer-implementable synchronization method, comprising:
- initiating, using at least one processor, synchronization between first and second peers, the first peer storing a first version of a datum, the first version of the datum associated with a first history, the second peer storing a second version of the datum, the second version of the dataum associated with a second history;
comparing, using the at least one processor, the first and second histories, the first history identifying a first set of one or more peers that have modified the datum and further indicating a number of modifications associated with each of the one or more peers identified in the first set, the second history identifying a second set of one or more peers that have modified the datum and further indicating a number of modifications associated with each of the one or more peers identified in the second set;
initiating a conflict resolution if the act of comparing indicatesthe first set of one or more peers differs from the second set of one or more peers by at least one peer, andall of the peers identified in the first set, that are also identified in the second set, have modified the datum less than corresponding peers identified in the second set;
determining whether the first and second histories identify subordinate and dominant versions of the datum based on the comparison or the conflict resolution; and
indicating, using the at least one processor, that the subordinate version of the datum is replaceable by the dominant version of the datum.
0 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method of synchronizing a datum between a plurality of stores is disclosed. A version history is associated with the datum in each store. The version history 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 histories of the datum are compared to determine whether one version history is subordinate to another version history. The datum in the store having the subordinate version history is then replaced with the datum having the dominant version history. When compared, a conflict resolution by a user is required if the version histories are not identical, if the version histories do not have all the same identifiers, and if one version history does not contain all of the identifiers with equal or greater values of those in the other version history.
193 Citations
37 Claims
-
1. A computer-implementable synchronization method, comprising:
-
initiating, using at least one processor, synchronization between first and second peers, the first peer storing a first version of a datum, the first version of the datum associated with a first history, the second peer storing a second version of the datum, the second version of the dataum associated with a second history; comparing, using the at least one processor, the first and second histories, the first history identifying a first set of one or more peers that have modified the datum and further indicating a number of modifications associated with each of the one or more peers identified in the first set, the second history identifying a second set of one or more peers that have modified the datum and further indicating a number of modifications associated with each of the one or more peers identified in the second set; initiating a conflict resolution if the act of comparing indicates the first set of one or more peers differs from the second set of one or more peers by at least one peer, and all of the peers identified in the first set, that are also identified in the second set, have modified the datum less than corresponding peers identified in the second set; determining whether the first and second histories identify subordinate and dominant versions of the datum based on the comparison or the conflict resolution; and indicating, using the at least one processor, that the subordinate version of the datum is replaceable by the dominant version of the datum. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-implementable synchronization method, comprising:
-
initiating, using at least one processor, synchronization between first and second peers, the first peer storing a first version of a datum, the first version of the datum associated with a first history, the second peer storing a second version of the datum, the second version of the datum associated with a second history and a loser array, the loser array identifying more than one subordinate histories that have lost a conflict resolution; determining whether the first history is subordinate to one of the subordinate histories in the loser array by comparing, using the at least one processor, the first history and the loser array; and indicating, using the at least one processor, that the first version of the datum at the first peer is replaceable by the second version of the datum at the second peer if the first history is identified as being subordinate. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer-implementable synchronization method, comprising:
-
initiating, using at least one processor, synchronization between first and second peers, the first peer storing a first version of a datum, the first version of the datum associated with a first history, the second peer storing a second version of the datum, the second version of the datum associated with a second history; determining, using the at least one processor, a conflict between the first and histories by comparing the first and second histories, obtaining, using the at least one processor, a resolution of the conflict, the resolution identifying one of the histories as a subordinate history associated with a subordinate version of the datum and identifying the other history as a dominant history associated with a dominant version of the datum; adding the subordinate history to a loser array associated with the dominant history, wherein the loser array identifies more than one subordinate histories that have lost a conflict resolution; and indicating, using the at least one processor, that the subordinate version of the datum is replaceable by the dominant version of the datum. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 37)
-
-
36. The method of 26, further comprising removing a redundant history from the loser array automatically when the second history is updated by a change to the datum at the second peer or when synchronizing between peers.
Specification