Synchronization of subsets of data including support for varying set membership
First Claim
1. A computing device, comprising:
- at least one processor;
memory that stores modules for execution by the at least one processor, the modules including;
a sync module configured to support variable membership in a filter set in connection with multi-master synchronization, configured to maintain filter forgotten knowledge, where forgotten knowledge supports synchronization of knowledge by the sync module with one or more other sync modules and the filter forgotten knowledge supports synchronization of filtered knowledge by the sync module with one or more other sync modules, and configured to communicatively couple to a local replica that stores a local version of a set of data objects and associated metadata, the sync module comprising;
a communications module configured to communicate with at least one other sync module included in a multi-master community of sync modules; and
an analysis module configured to manage information associated with the set of data objects, wherein the information includes (1) knowledge that pertains to at least one version of the set of data objects received from the at least one other sync module, and (2) filter forgotten knowledge that pertains to deleted data objects, or versions thereof, that belong to filtered knowledge, which is a filtered subset of the set of data objects in which membership is dynamic;
the sync module being further configured to synchronize the local replica based upon information received from the at least one other sync module.
2 Assignments
0 Petitions
Accused Products
Abstract
An efficient way and general mechanism is provided to represent and exchange knowledge and/or partial knowledge across nodes when synchronizing between any two nodes including custom or move filters where set membership can change over time at a device as data items come in and out of filter scope. A first node sends a second node its knowledge and/or partial knowledge, including objects and versions of those objects. The second node compares its knowledge and/or partial knowledge with the knowledge and/or partial knowledge of the first node, and then sends the first node any latest versions of objects of which the first node is unaware. In addition, the second node sends its knowledge and/or partial knowledge to the first node. The first node then performs a similar object-by-object version comparison to determine any conflicts due to independent evolution of objects and any changes that can be sent to the second node in order to bring the objects of the second node up to date with the knowledge and/or partial knowledge of the first node. Replicas can track filters to efficiently support synchronizing with filtered replicas. Filter forgotten knowledge is also used to represent how recently a replica can guarantee to know which items have been in the filter. Ghosts can be used to represent items that have been in the filter recently but have currently moved out. Filter forgotten knowledge concept allows both new filters to be tracked when they are introduced into the community, as well as periodically cleaning up of tombstones and ghosts.
23 Citations
19 Claims
-
1. A computing device, comprising:
-
at least one processor; memory that stores modules for execution by the at least one processor, the modules including; a sync module configured to support variable membership in a filter set in connection with multi-master synchronization, configured to maintain filter forgotten knowledge, where forgotten knowledge supports synchronization of knowledge by the sync module with one or more other sync modules and the filter forgotten knowledge supports synchronization of filtered knowledge by the sync module with one or more other sync modules, and configured to communicatively couple to a local replica that stores a local version of a set of data objects and associated metadata, the sync module comprising; a communications module configured to communicate with at least one other sync module included in a multi-master community of sync modules; and an analysis module configured to manage information associated with the set of data objects, wherein the information includes (1) knowledge that pertains to at least one version of the set of data objects received from the at least one other sync module, and (2) filter forgotten knowledge that pertains to deleted data objects, or versions thereof, that belong to filtered knowledge, which is a filtered subset of the set of data objects in which membership is dynamic; the sync module being further configured to synchronize the local replica based upon information received from the at least one other sync module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method, comprising:
-
maintaining a first replica for storing a first version of data objects and associated metadata in a computer readable storage medium; configuring the first replica for supporting variable membership in a filter set in connection with multi-master synchronization; communicating by a first sync module associated with the first replica with a second sync module associated with a second replica of a multi-master community of replicas, the second replica storing a second version of data objects and associated metadata; including in the first replica knowledge relating to known versions of data objects maintained by the multi-master community and filter forgotten knowledge relating to purged data objects belonging to a filtered subset of the first version of data objects in which membership is dynamic, where forgotten knowledge supports synchronization of knowledge between the first and second replicas and the filter forgotten knowledge supports synchronization of filtered knowledge between the first and second replicas; and synchronizing by the first sync module the first replica with the second replica based upon information received from the second sync module; at least one of the maintaining, configuring, communicating, including and synchronizing steps being executed by a processor. - View Dependent Claims (14, 15)
-
-
16. A method, comprising:
-
maintaining a local replica for storing a current version of data objects and associated metadata; communicatively coupling by a first sync module associated with the local replica to a second sync module associated with an other replica of a multi-master community of replicas, the other replica storing an other version of data objects and associated metadata; maintaining in the local replica knowledge relating to known versions of data objects maintained by the multi-master community, forgotten knowledge relating to purged data object or versions thereof, and filter forgotten knowledge relating to purged data objects, or versions thereof, that are included in a filtered subset, with dynamic membership, of the local version of data objects, where forgotten knowledge supports synchronization of knowledge between the local replica and an other replica and the filter forgotten knowledge supports synchronization of filtered knowledge between the local replica and an other replica; and synchronizing by the first sync module the local replica and the other replica based upon information received from the second sync module; at least one of the maintaining, coupling and synchronizing steps being executed by a processor. - View Dependent Claims (17, 18, 19)
-
Specification