Granular control over the authority of replicated information via fencing and unfencing
First Claim
1. A computer-readable medium having computer-executable instructions, comprising:
- retrieving meta-data of a resource that is replicated on a plurality of machines, the resource having meta-data and content that resides on each machine on which the resource is replicated, the meta-data including one or more values that are updated whenever the content of the resource is changed via any local update and a fence value that is independent of any local changes to the content;
comparing a first fence value of the content on a first machine of the plurality of machines with a second fence value of the content on a second machine of the plurality of machines; and
if the first fence value is of higher precedence than the second fence value, updating the second machine.
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.
76 Citations
33 Claims
-
1. A computer-readable medium having computer-executable instructions, comprising:
-
retrieving meta-data of a resource that is replicated on a plurality of machines, the resource having meta-data and content that resides on each machine on which the resource is replicated, the meta-data including one or more values that are updated whenever the content of the resource is changed via any local update and a fence value that is independent of any local changes to the content;
comparing a first fence value of the content on a first machine of the plurality of machines with a second fence value of the content on a second machine of the plurality of machines; and
if the first fence value is of higher precedence than the second fence value, updating the second machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15)
-
-
8. The computer-readable medium of claim 8, further comprising comparing the digests of the meta-data on the machines and bypassing updating if the digests are equivalent.
-
16. A computer-readabte medium having computer-executable instructions, 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 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 a fence value, each fence value indicating whether its associated resource should be used to update a resource on another machine at a higher precedence than from other meta-data;
if the fence value of the second resource indicates that the second resource should not be propagated from the second machine, preventing propagation from the second machine; and
if the fence value of the first resource is of a higher precedence than the fence value of the second resource, updating the second resource from the first resource. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for replicating data, comprising:
-
loading data onto a first machine;
marking the data with a fence value that indicates that the data should not be transmitted from the first machine to update data on any other machine;
synchronizing at least a portion of the data with data on a second machine. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. A system for replicating data, comprising:
-
a first machine having a first set of resources;
a second machine having a second set of resource, wherein each resource on each machine is associated with 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 a fence value, each fence value indicating whether its associated resource should be used to update a resource on another machine independently from other meta-data, wherein the first and second machines are configured to;
communicate information regarding the resources contained by both, and update each resource that is out-of-date according to the following precedence;
if a fence value of a resource on one of the machines is of higher precedence than 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. - View Dependent Claims (32, 33)
-
Specification