Synchronization of database changes among multiple devices
First Claim
1. A computer-implemented method of synchronizing databases, the method comprising:
- determining, by a primary device, one or more primary differences between a primary database and a local synchronization database;
receiving, from a secondary device, one or more secondary differences associated with a secondary database;
detecting, with the primary device, at least one conflict between the primary differences and the secondary differences;
resolving, by the primary device, the at least one conflict resolution based on a primary database timestamp and a secondary database timestamp;
merging the primary differences and the secondary differences and accounting for the at least one conflict resolution to generate a set of merged differences;
providing the set of merged differences to the secondary device;
determining whether an acknowledgement indicating receipt of the set of merged differences is received within a threshold period of time;
updating the primary database in accordance with the set of merged differences in the event that the acknowledgment is received within the threshold period of time; and
initiating an error recovery mechanism in the event that the acknowledgement is not received within the threshold period of time, wherein the error recovery mechanism determines a first portion of the merged differences that were received by the secondary device and schedules retransmission of a second portion of the merged differences that were not received.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer program products, for synchronizing database changes among multiple devices. In one aspect, a method includes determining one or more primary differences between a primary database and a local synchronization database; receiving, from a secondary device, one or more secondary differences associated with a secondary database; merging the primary differences and the secondary differences to generate a set of merged differences; providing the set of merged differences to the secondary device; receiving, from the secondary device, an acknowledgment indicating receipt of the set of merged differences; and updating the primary database in accordance with the set of merged differences after receipt of the acknowledgment. Further, at least one conflict can be detected between the primary differences and the secondary differences, and can be resolved prior to generating the set of merged differences.
-
Citations
18 Claims
-
1. A computer-implemented method of synchronizing databases, the method comprising:
-
determining, by a primary device, one or more primary differences between a primary database and a local synchronization database; receiving, from a secondary device, one or more secondary differences associated with a secondary database; detecting, with the primary device, at least one conflict between the primary differences and the secondary differences; resolving, by the primary device, the at least one conflict resolution based on a primary database timestamp and a secondary database timestamp; merging the primary differences and the secondary differences and accounting for the at least one conflict resolution to generate a set of merged differences; providing the set of merged differences to the secondary device; determining whether an acknowledgement indicating receipt of the set of merged differences is received within a threshold period of time; updating the primary database in accordance with the set of merged differences in the event that the acknowledgment is received within the threshold period of time; and initiating an error recovery mechanism in the event that the acknowledgement is not received within the threshold period of time, wherein the error recovery mechanism determines a first portion of the merged differences that were received by the secondary device and schedules retransmission of a second portion of the merged differences that were not received. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product, encoded on a non-transitory computer-readable medium, operable to cause data processing apparatus to perform operations comprising:
-
determining, by a primary device, one or more primary differences between a primary database and a local synchronization database; receiving, from a secondary device, one or more secondary differences associated with a secondary database; detecting, with the primary device, at least one conflict between the primary differences and the secondary differences; resolving, by the primary device, the at least one conflict resolution based on a primary database timestamp and a secondary database timestamp; merging the primary differences and the secondary differences to generate a set of merged differences; providing the set of merged differences to the secondary device; determining whether an acknowledgement indicating receipt of the set of merged differences is received within a threshold period of time; updating the primary database in accordance with the set of merged differences in the event that the acknowledgment is received within the threshold period of time; and initiating an error recovery mechanism in the event that the acknowledgement is not received within the threshold period of time, wherein the error recovery mechanism determines a first portion of the merged differences that were received by the secondary device and schedules retransmission of a second portion of the merged differences that were not received. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a secondary device including a secondary database stored on a storage device; and a primary device communicatively coupled to the secondary device and including a primary database and a local synchronization database stored on a storage device, wherein the primary device further includes processor electronics configured to perform operations comprising; determining one or more primary differences between the primary database and the local synchronization database; receiving, from the secondary device, one or more secondary differences associated with the secondary database; detecting, with the primary device, at least one conflict between the primary differences and the secondary differences; resolving, by the primary device, the at least one conflict resolution based on a primary database timestamp and a secondary database timestamp; merging the primary differences and the secondary differences to generate a set of merged differences; transmitting the set of merged differences to the secondary device; determining whether an acknowledgement indicating receipt of the set of merged differences is received within a threshold period of time; updating the primary database in accordance with the set of merged differences in the event that the acknowledgment is received within the threshold period of time; and initiating an error recovery mechanism in the event that the acknowledgement is not received within the threshold period of time, wherein the error recovery mechanism determines a first portion of the merged differences that were received by the secondary device and schedules retransmission of a second portion of the merged differences that were not received. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification