Resource freshness and replication
First Claim
1. A computer-storage medium having computer executable instructions, comprising:
- detecting whether local resources stored within a first folder and hosted on a local machine are stale via a first timestamp associated with the first folder, the local machine also storing local resources within a second folder having an associated second timestamp different from the first timestamp, wherein the first timestamp includes a time of a previous synchronization of the local resources within the first folder, wherein the previous synchronization comprised applying updates to the local resources within the first folder received from an upstream partner, wherein the local machine and the upstream partner participate in a replica group, and wherein the first timestamp is updated only upon synchronization of the local resources within the first folder, the synchronization of the local resources occurring at an update frequency;
wherein the detecting further comprises;
determining a difference between the first timestamp and a local system clock; and
comparing the difference to a staleness value to determine whether the difference exceeds the staleness value, wherein the staleness value is greater than the update frequency and less than or equal to a tombstone period that indicates how long a resource is marked as deleted before resource metadata associated with the resource is deleted;
when the local resources are stale, refraining from sending updates of the local resources from the local machine to a downstream partner; and
when the local resources are not stale, sending updates of the local resources from the local resources to the downstream partner.
2 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the subject matter described herein relate to resource replication systems. In aspects, a mechanism is described that detects when local resources are stale. Local resources may be stale when the time between a last successful synchronization activity and a current time exceeds a staleness value. If the local resources are determined to be stale, the local member may refrain from certain synchronization activities until the local member is allowed to resume these certain synchronization activities. If the local resources are not stale, additional synchronization activities including synchronizing resources between the member and an upstream or downstream partner may be performed.
-
Citations
14 Claims
-
1. A computer-storage medium having computer executable instructions, comprising:
-
detecting whether local resources stored within a first folder and hosted on a local machine are stale via a first timestamp associated with the first folder, the local machine also storing local resources within a second folder having an associated second timestamp different from the first timestamp, wherein the first timestamp includes a time of a previous synchronization of the local resources within the first folder, wherein the previous synchronization comprised applying updates to the local resources within the first folder received from an upstream partner, wherein the local machine and the upstream partner participate in a replica group, and wherein the first timestamp is updated only upon synchronization of the local resources within the first folder, the synchronization of the local resources occurring at an update frequency; wherein the detecting further comprises; determining a difference between the first timestamp and a local system clock; and comparing the difference to a staleness value to determine whether the difference exceeds the staleness value, wherein the staleness value is greater than the update frequency and less than or equal to a tombstone period that indicates how long a resource is marked as deleted before resource metadata associated with the resource is deleted; when the local resources are stale, refraining from sending updates of the local resources from the local machine to a downstream partner; and when the local resources are not stale, sending updates of the local resources from the local resources to the downstream partner. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method implemented at least in part by a computer, the computer including at least one processor and memory and the method comprising:
-
storing at a second member a first value in association with a first replicated folder and storing at the second member a second value different from the first value in association with a second replicated folder, the first value including a previous time of a first synchronization of the first replicated folder between the second member and other members that replicate resources with the second member, wherein the-synchronization comprises applying updates made to a resource stored in a first member'"'"'s first replicated folder to a corresponding replicated resource stored in the second member'"'"'s first replicated folder, and wherein the first value is updated only upon synchronization between the second member'"'"'s first replicated folder and the other members that replicate resources with the second member, the synchronization between the second member'"'"'s first replicated folder and the other members occurring at an update frequency; receiving a request from a third member to engage in a second synchronization, wherein the request is received at the second member and the request comprises both a connection request and a request to transmit updates for the replicated resource stored in the second member'"'"'s first replicated folder to the third member; determining, by the second member, that the replicated resource stored on the second member'"'"'s first replicated folder is not up-to-date by computing the difference between a current time and the previous time of the first synchronization and determining that the difference exceeds a staleness value, wherein the staleness value is greater than the update frequency and less than or equal to a tombstone period that indicates how long a resource is marked as deleted before resource metadata associated with the resource is deleted; and in response to the determining step, accepting, by the second member, the connection request from the third member and refusing the request to transmit updates for the replicated resource to the third member. - View Dependent Claims (8, 9, 10)
-
-
11. In a computing environment, an apparatus, comprising:
-
a processor for executing computer executable instructions; and computer storage media storing computer executable instructions that when executed provide; a resource store arranged to store resource metadata for resources that are replicated by members arranged to participate in a replica group, wherein the resource store is also arranged to store for each folder in the resource store a different value including a time at which a successful synchronization occurred, wherein the successful synchronization comprised applying updates to a resource stored in one of the folders of the resource store, and wherein the value is updated only upon synchronization of the one of the folders with a folder stored on a member of the replica group, the synchronization of the one of the folders occurring at an update frequency; and an update mechanism arranged to determine whether resources stored in the one of the folders of the resource store are fresh enough to engage in a second synchronization, wherein the second synchronization comprises sending updates for a second resource stored in the one of the folders of the resource store, the update mechanism; determining a difference between the value and a local system clock; and comparing the difference to a staleness value to determine whether the difference exceeds the staleness value, wherein the staleness value is greater than the update frequency and less than or equal to a tombstone period that indicates how long a resource is marked as deleted before resource metadata associated with the resource is deleted. - View Dependent Claims (12, 13, 14)
-
Specification