Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-readable storage medium having stored computer-executable instructions which when executed perform a method for replacing local versions of resources that have been updated locally rather than remotely in a replicating network wherein each computer of the replicating network stores resources of the replicating network such that each individual computer stores resources that correspond to the individual computer and also stores replicas of resources that correspond to the other computers of the replicating network, comprising: at a slave monitor of an update mechanism, the slave monitor running on a slave computer of the replicating network, the slave monitor requesting a local version vector which resides on the slave computer, the local version vector representing a version of the resources of the replicating network that correspond to the slave computer and one or more versions of the resources of the replicating network that the slave computer has received that correspond to the other computers of the replicating network; upon receiving the local version vector, the slave monitor determining based on the value of each of the versions of the version vector that changes have been made to the resources stored on the slave computer; upon detecting that the local version vector has been updated indicating that one or more updates have been made to the resources stored on the slave computer, the slave monitor determining whether the one or more updates have been made locally rather than remotely, wherein a local update comprises an update to a resource on the slave computer that is made by the slave computer rather than an update to a resource on the slave computer that occurs through replication from one or more of the other computers of the replicating network such that: upon determining that the one or more updates have been made remotely, the updates are allowed to be propagated to one or more of the other computers of the replicating network; and upon determining that at least one of the one or more updates was made locally rather than remotely, the slave monitor requesting a version vector from an upstream partner to which the slave computer is connected in the replicating network, and upon receiving the version vector from the upstream partner, the slave monitor using the received version vector to replace the at least one of the one or more updated resources that was updated locally on the slave computer such that: upon determining that an updated resource on the slave computer comprises a newly created resource that was created locally by the slave computer, the slave monitor indicating that the updated resource should be deleted such that the update mechanism deletes the updated resource from the slave computer; and upon determining that an updated resource on the slave computer was updated locally by the slave computer, the slave monitor indicating that the updated resource should be replaced by a version received from the upstream partner such that the update mechanism requests a version of the updated resource from the upstream partner and replaces the updated resource with the version received from the upstream partner on the slave computer.
2. The computer-readable storage medium of claim 1 , wherein the version received from the upstream partner comprises a version of the updated resource that existed on the local machine just prior to the local resource being updated locally.
3. The computer-readable storage medium of claim 1 , wherein the version received from the upstream partner comprises a version of the updated resource that is newer then what existed on the local machine just prior to the local resource being updated locally.
4. The computer-readable storage medium of claim 1 , wherein requesting a version vector from an upstream partner further comprises upon receiving the version vector from the upstream partner, determining whether the received version vector associated with the upstream partner dominates a local version vector except for a local version chain.
5. The computer-readable storage medium of claim 4 , wherein the local version chain comprises a version number associated with local resources.
6. The computer-readable storage medium of claim 4 , wherein the received version vector associated with the upstream partner dominates a local version vector except for a local version chain if for each of the other computers of the replicating network that are represented by the received version vector associated with the upstream partner except the slave computer represented by the local version chain, the version vector associated with the upstream partner indicates that the upstream partner is aware of a same or newer version than the local machine.
7. The computer-readable storage medium of claim 1 , further comprising upon determining from the received version vector that the upstream partner does not have a version of the updated resource, deleting the updated resource from the slave computer.
8. The computer-readable storage medium of claim 1 , wherein indicating that the updated resource should be deleted such that the update mechanism deletes the updated resource from the slave computer further comprises: determining that the updated resource was created locally and not replicated to a downstream partner; and upon determining that the updated resource was not replicated to a downstream partner, deleting the updated resource.
9. A method implemented at least in part by a computer for replacing local versions of files that have been updated locally rather than remotely in a replicating network wherein each computer of the replicating network stores resources of the replicating network such that each individual computer stores resources that correspond to the individual computer and also stores replicas of resources that correspond to the other computers of the replicating network, the method comprising: at a slave monitor of an update mechanism, the slave monitor running on a slave computer of the replicating network, the slave monitor requesting a local version vector which resides on the slave computer, the local version vector representing a version of the resources of the replicating network that correspond to the slave computer and one or more versions of the resources of the replicating network that the slave computer has received that correspond to the other computers of the replicating network; upon receiving the local version vector, the slave monitor determining based on the value of each of the versions of the version vector that changes have been made to the resources stored on the slave computer; upon detecting that the local version vector has been updated indicating that one or more updates have been made to the resources stored on the slave computer, the slave monitor determining whether the one or more updates have been made locally rather than remotely, wherein a local update comprises an update to a resource on the slave computer that is made by the slave computer rather than an update to a resource on the slave computer that occurs through replication from one or more of the other computers of the replicating network such that: upon determining that the one or more updates have been made remotely, the updates are allowed to be propagated to one or more of the other computers of the replicating network; and upon determining that at least one of the one or more updates was made locally rather than remotely, the slave monitor requesting a version vector from an upstream partner to which the slave computer is connected in the replicating network, and upon receiving the version vector from the upstream partner, the slave monitor using the received version vector to replace the at least one of the one or more updated resources that was updated locally on the slave computer such that: upon determining that an updated resource on the slave computer comprises a newly created resource that was created locally by the slave computer, the slave monitor indicating that the updated resource should be deleted such that the update mechanism deletes the updated resource from the slave computer; and upon determining that an updated resource on the slave computer was updated locally by the slave computer, the slave monitor indicating that the updated resource should be replaced by a version received from the upstream partner such that the update mechanism requests a version of the updated resource from the upstream partner and replaces the updated resource with the version received from the upstream partner on the slave computer.
10. The method of claim 9 , wherein determining whether the one or more updates have been made locally rather than remotely comprises examining a flag associated with the updated resource, wherein the flag is set when the resource is not updated locally.
11. The method of claim 9 , wherein requesting a version vector from an upstream partner further comprises determining whether the received version vector associated with the upstream partner dominates a local version vector except for a local version chain.
12. The method of claim 9 , wherein requesting a version vector from an upstream partner further comprises obtaining a version vector associated with the upstream partner from a local cache and determining whether the obtained version vector dominates a local version vector except for a local version chain.
13. The method of claim 9 , wherein replacing the updated resource with the version received from the upstream partner comprises receiving an indication that a resource on the upstream partner corresponding to the updated resource has been deleted and in response, marking the updated resource for deletion.
14. The method of claim 9 , wherein indicating that the updated resource should be deleted such that the update mechanism deletes the updated resource from the slave computer further comprises: determining that the updated resource was created locally and not replicated to a downstream partner; and upon determining that the updated resource was not replicated to a downstream partner, deleting the update resource.
15. In a computing environment, an apparatus, comprising: a memory containing a resource store arranged to store resource metadata for resources that are replicated by computers arranged to participate in a replicating network; and an update mechanism arranged to detect changes to local resources and install replacement resources in response thereto such that the changes are undone, wherein the resource store is associated with a slave computer arranged to participate in the replicating network, the update mechanism comprising a slave monitor for performing the following: requesting a local version vector which resides on the slave computer, the local version vector representing a version of the resources of the replicating network that correspond to the slave computer and one or more versions of the resources of the replicating network that the slave computer has received that correspond to the other computers of the replicating network; upon receiving the local version vector, determining based on the value of each of the versions of the version vector that changes have been made to the resources stored on the slave computer; upon detecting that the local version vector has been updated indicating that one or more updates have been made to the resources stored on the slave computer, determining whether the one or more updates have been made locally rather than remotely, wherein a local update comprises an update to a resource on the slave computer that is made by the slave computer rather than an update to a resource on the slave computer that occurs through replication from one or more of the other computers of the replicating network such that: upon determining that the one or more updates have been made remotely, allowing the updates to be propagated to one or more of the other computers of the replicating network; and upon determining that at least one of the one or more updates was made locally rather than remotely, requesting a version vector from an upstream partner to which the slave computer is connected in the replicating network, and upon receiving the version vector from the upstream partner, using the received version vector to replace the at least one of the one or more updated resources that was updated locally on the slave computer such that: upon determining that an updated resource on the slave computer comprises a newly created resource that was created locally by the slave computer, indicating that the updated resource should be deleted such that the update mechanism deletes the updated resource from the slave computer; and upon determining that an updated resource on the slave computer was updated locally by the slave computer, indicating that the updated resource should be replaced by a version received from the upstream partner such that the update mechanism requests a version of the updated resource from the upstream partner and replaces the updated resource with the version received from the upstream partner on the slave computer.
16. The apparatus of claim 15 , wherein requesting a version vector from an upstream partner further comprises determining whether the received version vector associated with the upstream partner dominates a local version vector except for a local version chain.
Unknown
May 19, 2009
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.