Incremental client synchronization
AssigneeDropbox, Inc.
InventorsIsaac Goldberg, John Lai
Life of this patent
Estimating the term…
Abstract
The disclosed technology relates to a system configured to identify a set of modifications based on a set of tree data structures including a sync tree, a remote tree, and a local tree. The sync tree represents a known synced state between a server state and a file system state, the remote tree represents the server state, and the local tree represents the file system state. The system is further configured to select a set of unblocked modifications from the set of modifications based on whether each modification has a dependency and execute, based on the set of unblocked modifications, a set of tasks configured to converge the server state and the file system state.
Claims17
A computer-implemented method comprising:
- identifying a set of modifications based on at least one difference between a sync tree and at least one of a remote tree and a local tree, wherein the sync tree represents a known synced state between a server state and a file system state, the remote tree represents the server state on a remote memory location, and the local tree represents the file system state on a client device, wherein a portion of the file system state has been synchronized with a portion of the server state when a portion of the remote tree, a portion of the sync tree, and a portion of the local tree are identical;
- selecting a set of unblocked modifications from the set of modifications based on whether each modification has a dependency;
- generating, based on the set of unblocked modifications, a set of operations configured to converge the server state and the file system state;
- ranking the set of unblocked modifications, wherein a first subset of the unblocked modifications are ranked higher than a second subset of modifications based on a different modification type associated with each subset;
- selecting the first subset of the set of unblocked modifications based on the ranking, wherein the set of operations is generated based on the subset;
- and
- providing the set of operations for execution, wherein executing the set of operations updates at least one of the remote tree or the local tree.
A non-transitory computer-readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to:
- receive modification data for content items associated with a content management system;
- update, based on the modification data, a set of tree data structures including a sync tree, a remote tree, and a local tree, wherein the sync tree represents a known synced state between a server state and a file system state, the remote tree represents the server state on a remote memory location, and the local tree represents the file system state on a client device, wherein a portion of the file system state has been synchronized with a portion of the server state when a portion of the remote tree, a portion of the sync tree, and a portion of the local tree are identical;
- identify a set of modifications based on the set of tree data structures;
- select a set of unblocked modifications from the set of modifications based on whether each modification has a dependency;
- generate, based on the set of unblocked modifications, a set of operations configured to converge the server state and the file system state;
- rank the set of unblocked modifications, wherein a first subset of the unblocked modifications are ranked higher than a second subset of modifications based on a different modification type associated with each subset;
- select the first subset of the set of unblocked modifications based on the ranking, wherein the set of operations is generated based on the subset;
- and
- provide the set of operations for execution, wherein executing the set of operations updates the remote tree or the local tree.
A system comprising:
- one or more processors;
- and
- a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to:
- identify a set of modifications based on a set of tree data structures including a sync tree, a remote tree, and a local tree, wherein the sync tree represents a known synced state between a server state and a file system state, the remote tree represents the server state on a remote memory location, and the local tree represents the file system state on a client device, wherein a portion of the file system state has been synchronized with a portion of the server state when a portion of the remote tree, a portion of the sync tree, and a portion of the local tree are identical;
- select a set of unblocked modifications from the set of modifications based on whether each modification has a dependency;
- rank the set of unblocked modifications, wherein a first subset of the unblocked modifications are ranked higher than a second subset of modifications based on a different modification type associated with each subset;
- select a subset of the set of unblocked modifications based on the ranking, wherein a set of operations is generated based on the subset;
- and
- execute, based on the subset of the set of unblocked modifications, a set of tasks configured to converge the server state and the file system state, wherein executing the set of tasks updates the remote tree or the local tree.
Dependencies are inferred from the claim text.