Granular control over the authority of replicated information via fencing and unfencing
First Claim
1. A computer storage media storing computer-executable instructions that when executed perform a method comprising:
- receiving a first fence value and first meta-data of the first member of a replica set, wherein the first fence value is independent of any change made to content of the first member of the replica set and is used to resolve a conflict between information in the first member of the replica set and information in the second member of the replica set;
comparing the first fence value with a second fence value of a second member of the replica set;
determining whether the first fence value has precedence over the second fence value;
based on the determining, changing content of the second member to reflect content of the first member; and
changing second meta-data of the second member to indicate a change in the content of the second member and maintaining the second fence value unchanged, wherein the second fence value is independent of any change made to the content of the second member.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for controlling which content gets precedence and is replicated. A replica set is comprised of a set of resources. Each resource is associated with resource data and resource meta-data. For files-based systems, resource data includes file contents and attributes, while resource meta-data includes additional attributes that are relevant for negotiating synchronization during replication. An extra field called a “fence value” is added to the meta-data associated with each resource. During synchronization, first fence values are compared. The resource with the highest fence value includes the content that is controlling and replicated. If fence values are equal (and greater than a particular value), the controlling resource is determined based on other meta-data.
29 Citations
28 Claims
-
1. A computer storage media storing computer-executable instructions that when executed perform a method comprising:
-
receiving a first fence value and first meta-data of the first member of a replica set, wherein the first fence value is independent of any change made to content of the first member of the replica set and is used to resolve a conflict between information in the first member of the replica set and information in the second member of the replica set; comparing the first fence value with a second fence value of a second member of the replica set; determining whether the first fence value has precedence over the second fence value; based on the determining, changing content of the second member to reflect content of the first member; and changing second meta-data of the second member to indicate a change in the content of the second member and maintaining the second fence value unchanged, wherein the second fence value is independent of any change made to the content of the second member. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer storage media storing computer-executable instructions that when executed perform a method comprising:
-
determining whether a first resource residing on a first machine should be used to update a second resource residing on a second machine, each resource associated with a fence value, meta-data, and content, each meta-data including one or more fields that are updated whenever the content of the associated resource is changed and, each fence value indicating whether its associated resource should be used to update a resource on another machine, the fence value having precedence over the meta-data, wherein each fence value is independent of any change made to content of its associated resource and is used to resolve a conflict between information on the first machine and information on the second machine; preventing propagation from the second machine based on the fence value of the second resource indicating that the second resource should not be propagated; and updating the second resource from the first resource based on the fence value of the first resource having precedence over the fence value of the second resource, and maintaining the fence value of the first resource and the fence value of the second resource unchanged. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for replicating data, comprising:
-
a first machine having a first set of resources; a second machine having a second set of resources, wherein each resource on each machine is associated with a fence value, meta-data, and content, each meta-data including one or more fields that are updated whenever the content of the associated resource is changed and, each fence value indicating whether its associated resource should be used to update a resource on another machine independently from other meta-data and each fence value being independent of any change made to content of its associated resource and being used to resolve a conflict between information on the first machine and information on the second machine, wherein the first and second machines are configured to; communicate information regarding the resources contained by both machines; and update each resource that is out-of-date according to the following precedence; determining whether a fence value of a resource on one of the machines has precedence over the fence value of a corresponding resource on the other machine; if a fence value of a resource on one of the machines has precedence over the fence value of a corresponding resource on the other machine, updating the other machine with the resource on the one machine;
otherwiseupdating the resource on the machines based on data other than the fence values, wherein the fence values are maintained unchanged. - View Dependent Claims (18, 19)
-
-
20. A computer implemented method of replicating data, the method comprising:
-
receiving a first fence value and first meta-data of a first member of a replica set, wherein the first fence value is independent of any change made to content of the first member of the replica set and is used to resolve a conflict between information on the first machine and information on the second machine; comparing the first fence value with a second fence value of a second member of the replica set; determining whether the first fence value has precedence over the second fence value; based on the determining, changing content of the second member to reflect content of the first member; and changing second meta-data of the second member of the replica set to indicate a change in the content of the second member and maintaining the second fence value unchanged, wherein the second fence value is independent of any change made to the content of the second member. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
Specification