Replication protocol for data stores
First Claim
1. In a sync community that includes a plurality of replicas, a protocol for replicating a first replica with a second replica, the protocol comprising:
- a request changes message from a first replica used to request changes that the first replica is unaware of, wherein the request changes message includes a knowledge argument used to represent a knowledge of the first replica; and
a convey changes message used by the second replica to convey changes to the first replica, wherein the convey changes message includes a change argument and a change ID, wherein the change is to be applied to the first replica and wherein the change ID includes a replica ID that identifies which replica in the sync community that originated the change.
3 Assignments
0 Petitions
Accused Products
Abstract
A protocol for replicating replicas in a sync community. Each replica maintains a knowledge that represents changes that the replica is aware of. Each replica does not typically maintain knowledge about other replicas. The protocol includes messages that include knowledge about changes on the various replicas. Using the knowledge, the replicas can enumerate changes and send the changes using asynchronous messages that do not need to be received in any particular order. The protocol enables filters to ensure that a valid replication is possible using a minimum knowledge argument. The protocol also enables replicas to partially replicate using filtered knowledge.
-
Citations
40 Claims
-
1. In a sync community that includes a plurality of replicas, a protocol for replicating a first replica with a second replica, the protocol comprising:
-
a request changes message from a first replica used to request changes that the first replica is unaware of, wherein the request changes message includes a knowledge argument used to represent a knowledge of the first replica; and
a convey changes message used by the second replica to convey changes to the first replica, wherein the convey changes message includes a change argument and a change ID, wherein the change is to be applied to the first replica and wherein the change ID includes a replica ID that identifies which replica in the sync community that originated the change. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a sync community that includes one or more replicas, a method for replicating the one or more replicas, the method comprising a first replica performing:
-
sending a request changes message to a second replica in a sync community, wherein the request changes message includes a knowledge that represent changes the first replica knows; and
receiving one or more convey changes messages from the second replica, wherein each convey changes message includes at least one change that the first replica does not know based on a comparison by the second replica between the knowledge of the first replica and a knowledge of the second replica. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. In a sync community that includes one or more replicas, a method for performing two way replication between a first replica and a second replica in the sync community, the method comprising:
-
sending a first request changes message to a second replica, wherein the first request changes message includes a knowledge of the first replica that the second replica can use to enumerate first changes that the first replica is unaware of;
receiving first convey changes messages from the second replica, wherein the first convey changes messages comprise the first changes, first change IDs associated with the first changes, and first made-with-knowledge values associated with the first changes;
receiving a second request changes message from the second replica, wherein the second request changes message includes a knowledge of the second replica that the first replica can compare with the knowledge of the first replica to enumerate second changes on the first replica that the second replica is unaware of; and
sending second convey changes messages to the second replica, wherein the second convey changes comprise the second changes, second change IDs associated with the second changes, and second made-with-knowledge values associated with the second changes. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. In a sync community including one or more replicas, a method for communicating changes from a first replica to other replicas in the sync community, the method comprising:
-
storing a knowledge at the first replica, wherein the knowledge includes one or more change IDs that represent changes that the first replica is aware of; and
sending a convey changes message to a second replica, wherein the convey changes message comprises;
a change argument that represents a particular change;
a change ID argument that is associated with the particular change, wherein the change ID argument identifies a particular replica that assigned a change ID to the particular change;
a made-with-knowledge argument that includes a knowledge that represents changes known by the particular replica that assigned the change ID when the change ID was assigned to the particular change. - View Dependent Claims (30, 31, 32)
-
-
33. In a sync community that includes one or more replicas, a computer program product for implementing a method for replicating the one or more replicas, the computer program product comprising:
a computer readable medium having computer-executable instructions for performing the method, the method comprising a first replica performing;
sending a request changes message to a second replica in a sync community, wherein the request changes message includes a knowledge that represent changes the first replica knows; and
receiving one or more convey changes messages from the second replica, wherein each convey changes message includes at least one change that the first replica does not know based on a comparison by the second replica between the knowledge of the first replica and a knowledge of the second replica. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
Specification