Reliable data synchronization over unreliable networks
First Claim
1. A method of synchronizing states of data between a plurality of devices over a communication channel, the method comprising:
- retrieving data from the devices;
updating centrally stored data, based on the data retrieved from the devices, so as to automatically recover from a prior synchronization failure, includingupdating a truth database representing a true state of the data,updating an action database indicating actions to be performed on the devices during a next update,creating an effective action database which accounts for any of the devices which were offline during a previous synchronization, andsaving the truth database and the effective action database in an atomic transaction; and
updating the data states on the devices based on the updated centrally stored data, including communicating with at least one of the devices over the communication channel and using the effective action database to update the data on the device.
5 Assignments
0 Petitions
Accused Products
Abstract
A centralized synchronization system synchronizes data stored in multiple devices distributed over a relatively unreliable network, to provide automatic recovery from synchronization failures. The synchronization system maintains a truth database indicating the true state of the data and action tables indicating actions to be performed on each of the devices during a next update of the data. Data is retrieved from the devices over the network, and actual states of the data are determined from the action tables and the retrieved data. The truth database and action tables are updated accordingly. An effective action table is then generated to account for any of the devices which were offline during the most-recent synchronization. The truth database and effective action tables are saved to a central database in an atomic transaction. The effective action tables are then used to update the data on the devices over the network.
72 Citations
25 Claims
-
1. A method of synchronizing states of data between a plurality of devices over a communication channel, the method comprising:
-
retrieving data from the devices; updating centrally stored data, based on the data retrieved from the devices, so as to automatically recover from a prior synchronization failure, including updating a truth database representing a true state of the data, updating an action database indicating actions to be performed on the devices during a next update, creating an effective action database which accounts for any of the devices which were offline during a previous synchronization, and saving the truth database and the effective action database in an atomic transaction; and updating the data states on the devices based on the updated centrally stored data, including communicating with at least one of the devices over the communication channel and using the effective action database to update the data on the device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of synchronizing states data between a plurality of devices, the method comprising:
-
retrieving data from the devices; automatically recovering from a prior synchronization failure by updating centrally stored data, including updating a truth database representing a true state of the data, updating an action database indicating actions to be performed on the devices during a next update, creating an effective action database which accounts for any of the devices which were offline during a previous synchronization, and saving the truth database and the effective action database in an atomic transaction; and updating the data states on the devices, including using the effective action database and communicating with at least one of the devices over a wireless network. - View Dependent Claims (7, 8, 9)
-
-
10. A method of performing a synchronization process to synchronize states data between a plurality of devices, the method comprising:
-
retrieving data from the devices; maintaining, in persistent storage, data indicating actions to be performed on the devices and data indicating the actual states of the data on the devices; using a recovery algorithm to determine actual states of the data on the devices; updating the data indicating actions to be performed on the devices and the data indicating the actual states of the data on the devices, based on results of the recovery algorithm; and updating the data states on the devices, including communicating with at least one of the devices over a wireless network. - View Dependent Claims (11, 12)
-
-
13. A method of synchronizing states of data between a plurality of devices, the method comprising:
-
maintaining a truth database representing a true state of the data; maintaining an action database indicating actions to be performed on the devices during a next update; retrieving the data from the devices, including communicating with at least one of the devices over the wireless network; determining actual current states of individual elements of the data based on the action database and the data retrieved from the devices; updating the truth database and the action database based on a result of said determining; creating an effective action database which accounts for any of the devices which were offline during a previous synchronization; saving the truth database and the effective action database in an atomic transaction; and updating the data on the devices, including using the effective action database and communicating with at least one of the devices over a wireless telecommunications network. - View Dependent Claims (14, 15)
-
-
16. A method of synchronizing states of contact data between a plurality of devices, the method comprising:
-
maintaining a truth database representing a true state of the contact data, the contact data representing a plurality of contacts; maintaining an action table for each of the devices, the action table indicating actions to be performed on the corresponding device during a next update; retrieving contact data from the devices, including communicating with at least one of the devices over a wireless telecommunications network; determining actual current states of the contacts on the devices based on the contact data retrieved from the devices and the action tables, so as to automatically recover from a synchronization failure; updating the truth database and the action tables based on a result of said determining; creating an effective action table for at least one of the devices based on the updated action table for the device and a previous version of the action table for the device, to account for any of the devices which were offline during a most-recent synchronization; saving the truth database and the effective action table in an atomic transaction; and using the effective action table to update the states of the contact data on the devices, including communicating with at least one of the devices over the wireless telecommunications network.
-
-
17. An apparatus to synchronize data states between a plurality of devices, the apparatus comprising:
-
a database system to store a truth database representing a true state of the data, and an action database indicating actions to be performed on the devices during a next update; a recovery unit to determine actual current states of the data based on the action database and data retrieved from the devices; and a synchronization engine to update the truth database and the action database, based on output of the recovery module, and to update data states on the devices based on the action database, by communicating with at least one of the devices over the wireless network. - View Dependent Claims (18, 19)
-
-
20. A machine-readable program storage medium storing instructions which, when executed in a processing system, cause the processing system to perform a method of synchronizing states of data between a plurality of devices, at least one of which is a mobile device operating on a wireless telecommunications network, the method comprising:
-
maintaining a truth database representing a true state of the data; maintaining an action database indicating actions to be performed on the devices during a next update; retrieving the data from the devices, including communicating with at least one of the devices over the wireless telecommunications network; determining actual current states of individual elements of the data based on the action database and the data retrieved from the devices; updating the truth database and the action database based on a result of said determining; creating effective action database which accounts for any of the devices which were offline during a previous synchronization; saving the truth database and the effective action database in an atomic transaction; and updating the data on the devices, including using the effective action database and communicating with at least one of the devices over the wireless telecommunications network. - View Dependent Claims (21, 22)
-
-
23. A processing system comprising:
-
a processor; a data communication device coupled to the processor to communicate data with a plurality of remote devices, at least one of which operates on a wireless telecommunications network; and a storage facility coupled to the processor and storing instructions for execution by the processor to cause the processing system to perform a method comprising; maintaining a truth database representing a true state of data maintained by the devices; maintaining an action database indicating actions to be performed on the devices during a next update; retrieving the data from the devices, including communicating with at least one of the devices over the wireless telecommunications network; determining actual current states of individual elements of the data based on the action database and the data retrieved from the devices; updating the truth database and the action database based on a result of determining the actual current states of individual elements of the data; creating an effective action database which accounts for any of the devices which were offline during a previous synchronization; saving the truth database and the effective action database in an atomic transaction; and using the effective action database to update the data on the devices, including communicating with at least one of the devices over the wireless telecommunications network. - View Dependent Claims (24, 25)
-
Specification