Data store synchronization utilizing synchronization logs
First Claim
1. A data synchronization method comprising:
- receiving in a synchronization data store of a receiving synchronization client both synchronization server applied updates and also peer applied updates received in the synchronization server from one or more peer synchronization clients and passed to the receiving synchronization client from the peer synchronization clients;
configuring a replica table within a synchronization log of the receiving synchronization client of updates excluded from past synchronizations to track a replica with which the receiving synchronization client has synchronized the synchronization data store, the replica table including entries that are separate from entries of the synchronization log, each entry of the replica table including a unique identifier for each replica stored therein and a time stamp of a last synchronization applied to synchronization data store of the receiving synchronization client by a corresponding one of the peer synchronization clients, the synchronization log in addition to the replica table further including a unique identifier for a synchronized update with a synchronization server and a second timestamp indicating when an update occurred with the synchronization server;
assembling a group of initial updates on the receiving synchronization client for synchronization with the synchronization server;
consulting the synchronization log of the receiving synchronization client to determine updates already applied to the synchronization data store of the receiving synchronization client by the synchronization server during past synchronizations and additionally consulting the replica table in the synchronization log of the receiving synchronization client to identify updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients but that had not yet been applied to the synchronization data store of the receiving synchronization client since an immediate past synchronization;
removing from the initial updates, ones of the initial updates indicated by both the synchronization log and the replica table as already having been applied during past synchronizations to produce a filtered set of updates and excluding from the filtered set of updates ones of the initial updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients that are reflected in the synchronization data store; and
,forwarding the filtered set of updates to the synchronization server.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention address deficiencies of the art in respect to data synchronization and provide a novel and non-obvious method, system and computer program product for synchronization log driven data synchronization. In one embodiment of the invention, a data synchronization method can be provided to include assembling a group of initial updates for synchronization, consulting a synchronization log of updates excluded from past synchronizations to determine updates already applied during past synchronizations, removing updates already applied during past synchronizations from a filtered set of updates, and synchronizing the filtered set of updates. In this regard, assembling a group of initial updates for synchronization can include assembling a group of initial updates having a timestamp greater than a timestamp for an immediate past synchronization.
22 Citations
9 Claims
-
1. A data synchronization method comprising:
-
receiving in a synchronization data store of a receiving synchronization client both synchronization server applied updates and also peer applied updates received in the synchronization server from one or more peer synchronization clients and passed to the receiving synchronization client from the peer synchronization clients; configuring a replica table within a synchronization log of the receiving synchronization client of updates excluded from past synchronizations to track a replica with which the receiving synchronization client has synchronized the synchronization data store, the replica table including entries that are separate from entries of the synchronization log, each entry of the replica table including a unique identifier for each replica stored therein and a time stamp of a last synchronization applied to synchronization data store of the receiving synchronization client by a corresponding one of the peer synchronization clients, the synchronization log in addition to the replica table further including a unique identifier for a synchronized update with a synchronization server and a second timestamp indicating when an update occurred with the synchronization server; assembling a group of initial updates on the receiving synchronization client for synchronization with the synchronization server; consulting the synchronization log of the receiving synchronization client to determine updates already applied to the synchronization data store of the receiving synchronization client by the synchronization server during past synchronizations and additionally consulting the replica table in the synchronization log of the receiving synchronization client to identify updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients but that had not yet been applied to the synchronization data store of the receiving synchronization client since an immediate past synchronization; removing from the initial updates, ones of the initial updates indicated by both the synchronization log and the replica table as already having been applied during past synchronizations to produce a filtered set of updates and excluding from the filtered set of updates ones of the initial updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients that are reflected in the synchronization data store; and
,forwarding the filtered set of updates to the synchronization server. - View Dependent Claims (2, 3)
-
-
4. A peer-to-peer synchronization data processing system comprising:
-
a synchronization server with at least one processor and memory configured for coupling to a plurality of synchronization clients configured for peer-to-peer synchronization, the synchronization server forwarding to different synchronization clients both synchronization server applied updates and also peer applied updates received in the synchronization server; and
,synchronization log based synchronization logic executing in memory of the synchronization server comprising program code enabled to track within the synchronization server updates previously applied to a selected one of the plurality of synchronization clients, to determine updates already applied during past synchronizations by receiving a replica table from within a peer synchronization log of updates excluded from past synchronizations from the selected one of the plurality of synchronization clients and consulting the synchronization log of the synchronization client to determine updates already applied by the synchronization server during past synchronizations and additionally consulting the replica table to identify updates in the selected one of the plurality of synchronization client received from the selected one of the plurality of synchronization clients that had not been updated since an immediate past synchronization, the replica table including entries that are separate from entries of the synchronization log, each entry of the replica table including a unique identifier for each server update previously applied to a selected one of the plurality of synchronization clients and a time stamp of a last synchronization applied by the selected one of the plurality of synchronization clients, the peer synchronization log in addition to the replica table also including a unique identifier for a synchronized update with the synchronization server and a second timestamp indicating when an update occurred with the synchronization server, to remove from a filtered set of the updates any of the updates already applied during past synchronizations with the selected one of the plurality of the synchronization clients as indicated by both the synchronization log and the replica table, and to exclude from the filtered set of the updates ones of the updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients that are reflected in the synchronization data store, and to forward the filtered set of the updates to the synchronization server. - View Dependent Claims (5, 6)
-
-
7. A computer program product comprising a computer readable storage medium storing computer usable program code thereon for data synchronization, the computer program product comprising:
-
computer usable program code for receiving in a synchronization data store of a receiving synchronization client both synchronization server applied updates and also peer applied updates received in the synchronization server from one or more peer synchronization clients and passed to the receiving synchronization client from the peer synchronization clients; computer usable program code for configuring a replica table within a synchronization log of the receiving synchronization client of updates excluded from past synchronizations to track a replica with which the receiving synchronization client has synchronized the synchronization data store, the replica table including entries that are separate from entries of the synchronization log, each entry of the replica table including a unique identifier for each replica stored therein and a time stamp of a last synchronization applied to synchronization data store of the receiving synchronization client by a corresponding one of the peer synchronization clients, the synchronization log in addition to the replica table further including a unique identifier for a synchronized update with a synchronization server and a second timestamp indicating when an update occurred with the synchronization server; computer usable program code for assembling a group of initial updates on the receiving synchronization client for synchronization with the synchronization server; computer usable program code for consulting the synchronization log of the receiving synchronization client to determine updates already applied to the synchronization data store of the receiving synchronization client by the synchronization server during past synchronizations and additionally consulting the replica table in the synchronization log of the receiving synchronization client to identify updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients but that had not yet been applied to the synchronization data store of the receiving synchronization client since an immediate past synchronization; computer usable program code for removing from the initial updates, ones of the initial updates indicated by both the synchronization log and the replica table as already having been applied during past synchronizations to produce a filtered set of updates and excluding from the filtered set of updates ones of the initial updates received in the receiving synchronization client from corresponding ones of the peer synchronization clients that are reflected in the synchronization data store; and
,computer usable program code for forwarding the filtered set of updates to the synchronization server. - View Dependent Claims (8, 9)
-
Specification