Systems and methods for replicating data stores
First Claim
1. In a sync community that includes a plurality of replicas, wherein each replica is able to make changes to data independently of other replicas in the sync community, a method for replicating a replica in the sync community, the method comprising a first replica performing:
- receiving a knowledge vector from a second replica in a sync community, wherein the knowledge vector represents changes to data that the second replica is aware of;
comparing the knowledge vector of the second replica with versions associated with changes in the first replica to identify changes on the first replica that are not known by the second replica; and
sending the identified changes to the second replica.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for replicating replicas in a sync community. Each replica in the sync community stores knowledge that represents changes the replica is aware of. Because each replica has its own knowledge, each replica does not need to know how many replicas are in the sync community or the topology of the sync community. By sending the knowledge with a request for changes, a replicating replica can enumerate the changes to replicate by comparing its knowledge with the received knowledge. After replication, the knowledge is updated. Knowledge may also include made-with-knowledge change IDs that permit each resolution to identify what a replica was aware of when a particular change was made. The made-with-knowledge values are used to detect conflicts during replication.
-
Citations
36 Claims
-
1. In a sync community that includes a plurality of replicas, wherein each replica is able to make changes to data independently of other replicas in the sync community, a method for replicating a replica in the sync community, the method comprising a first replica performing:
-
receiving a knowledge vector from a second replica in a sync community, wherein the knowledge vector represents changes to data that the second replica is aware of;
comparing the knowledge vector of the second replica with versions associated with changes in the first replica to identify changes on the first replica that are not known by the second replica; and
sending the identified changes to the second replica. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a sync community that includes a plurality of replicas, wherein each replica is able to make changes to data independently of other replicas in the sync community, a method for replicating a replica in the sync community, the method comprising:
-
maintaining a first knowledge at a first replica, wherein the first knowledge includes change IDs that are associated with at least changes in the first replica;
enumerating changes at the first replica that are not known at a second replica by comparing a second knowledge of the second replica that includes change IDs with the change IDs that are associated with changes in the first replica; and
sending the enumerated changes to the second replica. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. In a sync community that includes one or more replicas, a method for replicating the one or more replicas such that each replica does not have to be aware of all replicas in the sync community or of a topology of the sync community, the method comprising a replica performing:
-
storing a knowledge vector at the replica, wherein the knowledge vector includes one or more change IDs that represent changes the replica knows;
during replication, comparing the knowledge vector with a knowledge vector of a second replica to identify first changes that the second vector does not know, wherein the second vector also compares the knowledge vectors to identify second changes at the second replica that the first replica does not know;
sending the first changes to the second replica; and
receiving the second changes from the second replica. - View Dependent Claims (19, 20, 21, 22)
-
-
23. In a sync community that includes one or more replicas that replicate data, a method for detecting conflicts during replication between a first replica and a second replica in the sync community, the method comprising:
-
storing a first plurality of changes at a first replica, wherein each change in the first plurality of changes is associated with a change ID and a made-with knowledge value;
receiving a second plurality of changes from a second replica, wherein each change in the second plurality of changes is associated with a change ID and a made-with-knowledge value; and
comparing the made-with-knowledge values of the second plurality of changes with the first plurality of changes to determine if a particular change in the first plurality of changes was made with knowledge of changes in the second plurality of changes;
comparing the made-with-knowledge values of the first plurality of changes with the second plurality of changes to determine if a particular change in the second plurality of changes was made with knowledge of changes in the first plurality of changes; and
detecting a conflict if any of the first plurality of changes was made without knowledge of changes in the second plurality of changes or if any of the second plurality of changes was made without knowledge of changes in the first plurality of changes. - View Dependent Claims (24, 25, 26, 27, 28)
-
-
29. In a sync community that includes a plurality of replicas, wherein each replica is able to make changes to data independently of other replicas in the sync community, a computer program product for implementing a method for replicating a replica in the sync community, the computer program product comprising:
a computer-readable medium having computer executable instructions for performing the method, the method comprising;
receiving a knowledge vector from a second replica in a sync community, wherein the knowledge vector represents changes to data that the second replica is aware of;
comparing the knowledge vector of the second replica with a knowledge vector of the first replica to identify changes on the first replica that are not known by the second replica; and
sending the identified changes to the second replica. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
Specification