Data synchronization
First Claim
Patent Images
1. A method comprising:
- identifying a first version of a data item to synchronize from a first device using a first change identifier associated with the data item;
identifying a second version of the data item to synchronize from a second device using a second change identifier associated with the data item;
upon determining that the first version and the second version occurred within a specified threshold, determining that there is a conflict between the first version of the data item and the second version of the data item; and
upon determining that there is a conflict, resolving the conflict, including;
determining, from the first change identifier, a first device identifier identifying the first device;
determining, from the second change identifier, a second device identifier identifying the second device;
selecting, from the first version of the data item and the second version of the data item, a conflict winner by comparing the first device identifier and the second device identifier and designating a version of the data item as stored on a device identified by a lowest device identifier or highest device identifier as the conflict winner;
designating the version not selected as the conflict winner as a conflict loser; and
storing a copy of the conflict loser.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for data synchronization. In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a knowledge vector from a first device of the pair of devices, the knowledge vector identifying data items and latest changes to the data items known to the peer device; comparing, at a second device of the pair of devices, the received knowledge vector with a local knowledge vector for changes unknown to the first device; and sending a list of changes to the first device.
27 Citations
18 Claims
-
1. A method comprising:
-
identifying a first version of a data item to synchronize from a first device using a first change identifier associated with the data item; identifying a second version of the data item to synchronize from a second device using a second change identifier associated with the data item; upon determining that the first version and the second version occurred within a specified threshold, determining that there is a conflict between the first version of the data item and the second version of the data item; and upon determining that there is a conflict, resolving the conflict, including; determining, from the first change identifier, a first device identifier identifying the first device; determining, from the second change identifier, a second device identifier identifying the second device; selecting, from the first version of the data item and the second version of the data item, a conflict winner by comparing the first device identifier and the second device identifier and designating a version of the data item as stored on a device identified by a lowest device identifier or highest device identifier as the conflict winner; designating the version not selected as the conflict winner as a conflict loser; and storing a copy of the conflict loser. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory storage device storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
-
identifying a first version of a data item to synchronize from a first device using a first change identifier associated with the data item; identifying a second version of the data item to synchronize from a second device using a second change identifier associated with the data item; upon determining that the first version and the second version occurred within a specified threshold, determining that there is a conflict between the first version of the data item and the second version of the data item; and upon determining that there is a conflict, resolving the conflict, including; determining, from the first change identifier, a first device identifier identifying the first device; determining, from the second change identifier, a second device identifier identifying the second device; selecting, from the first version of the data item and the second version of the data item, a conflict winner by comparing the first device identifier and the second device identifier and designating a version of the data item as stored on a device identified by a lowest device identifier or highest device identifier as the conflict winner; designating the version not selected as the conflict winner as a conflict loser; and storing a copy of the conflict loser. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a first device; and a second device connected to a the first device, the second device being configured to perform operations comprising; identifying a first version of a data item to synchronize from a first device using a first change identifier associated with the data item; identifying a second version of the data item to synchronize from a second device using a second change identifier associated with the data item; upon determining that the first version and the second version occurred within a specified threshold, determining that there is a conflict between the first version of the data item and the second version of the data item; and upon determining that there is a conflict, resolving the conflict, including; determining, from the first change identifier, a first device identifier identifying the first device; determining, from the second change identifier, a second device identifier identifying the second device; selecting, from the first version of the data item and the second version of the data item, a conflict winner by comparing the first device identifier and the second device identifier and designating a version of the data item as stored on a device identified by a lowest device identifier or highest device identifier as the conflict winner; designating the version not selected as the conflict winner as a conflict loser; and storing a copy of the conflict loser. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification