IP Library Granted Patent US 10,866,964
Granted Patent B2
US 10,866,964 · App. 15/858,125 · Granted Dec 15, 2020

Updating a local tree for a client synchronization service

Inventor: John Lai (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F16/27G06F1/04G06F3/065G06F3/067G06F3/0619G06F3/0623G06F3/0629G06F3/0652G06F9/547G06F11/1469G06F12/1466G06F16/11G06F16/113G06F16/116G06F16/119G06F16/122G06F16/125G06F16/128G06F16/13G06F16/137G06F16/148G06F16/152G06F16/156G06F16/16G06F16/162G06F16/168G06F16/172G06F16/176G06F16/178G06F16/1734G06F16/1744G06F16/1767G06F16/1787G06F16/18G06F16/182G06F16/183G06F16/184G06F16/185G06F16/1827G06F16/1844G06F16/2246G06F16/2255G06F16/2322G06F16/2358G06F16/2365G06F16/2379G06F16/24552G06F16/275G06F16/907G06F16/9027G06F16/951G06F16/955G06F16/958G06F21/10G06F21/604G06F21/6218H04L9/3213H04L9/3247H04L63/08H04L63/0853H04L63/10H04L63/101H04L63/102H04L67/06H04L67/1095H04L67/1097G06F2201/84G06F2212/1052G06F2221/2141H04L67/306H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,866,964
App. No.
15/858,125
Granted
Dec 15, 2020
Kind
B2
Abstract

The disclosed technology relates to a system configured to detect a first file event associated with a content item on a local file system of a client device, determine that the first file event violates a local tree constraint in a set of local tree constraints, perform a remediation associated with the violated local tree constraint, and update a local tree based on the set of observed file events, wherein the local tree represents the file system state.

Claims (54)

1. A computer-implemented method performed by a client synchronization service, the computer-implemented method comprising:

identifying a difference between a local tree that represents a previous state of a local file system and a current state of the local file system of a client device, wherein the local tree is stored on the client device;

generating a first file event associated with a content item based on the identified difference between the local tree and the local file system of the client device;

adding the first file event to a set of observed file events;

determining that the set of observed file events violates a local tree constraint in a set of local tree constraints, wherein the local tree constraint comprises a requirement that all structures necessary to update the local tree are present in the set of observed file events or that data associated with the set of observed file events complies with at least one rule of the client synchronization service which must be fulfilled;

performing a remediation associated with the violated local tree constraint; and

updating the local tree based on the set of observed file events after performing the remediation associated with the violated local tree constraint.

2. The computer-implemented method of claim 1 , wherein the first file event is one of an add, a delete, an edit, or a move of the content item on the local file system of the client device.

3. The computer-implemented method of claim 1 , wherein the local tree constraint is a requirement that all nodes in the local tree must have an existing parent in order to have all structures necessary to update the local tree, and wherein the remediation associated with the violated local tree constraint is requiring observing a second file event associated with an add of a parent of the content item associated with the first file event.

4. The computer-implemented method of claim 3 , further comprising:

detecting the second file event associated with the add of the parent of the content item; and

adding the second file event to the set of observed file events.

5. The computer-implemented method of claim 1 , wherein the local tree constraint is a requirement that all nodes in the local tree have a unique file identifier in order to complied with the at least one rule of the client synchronization service, and wherein the remediation is assigning the content item associated with the first file event a new file identifier.

6. The computer-implemented method of claim 5 , further comprising:

requesting, from a content management system, the new file identifier; and

assigning the new file identifier for the content item associated with the first file event.

7. The computer-implemented method of claim 1 , wherein the remediation is editing a file name for the content item associated with the first file event.

8. The computer-implemented method of claim 1 , further comprising identifying a difference between the local tree and the local file system, wherein the first file event is based on the difference between the local tree and the local file system.

9. The computer-implemented method of claim 1 , further comprising determining, after the performing of the remediation, that the set of observed file events satisfies the set of local tree constraints, wherein the updating of the local tree is based on satisfaction of the set of local tree constraints.

10. The computer-implemented method of claim 1 , further comprising:

determining that a server state and a last known state of the local file system are out of sync, wherein the determining is based on a difference between the local tree and a sync tree representing a known synced state between the server state and the last known state of the local file system;

generating, based on the difference, a set of operations for the content items stored by a content management system, wherein the set of operations is configured to operate on the content items stored by the content management system to converge the server state and the last known state of the local file system; and

managing execution of the set of operations.

11. A non-transitory computer readable medium comprising instructions, the instructions, when executed by a computing system including a client synchronization service, cause the client synchronization service to:

identify a difference between a local tree that represents a previous state of a local file system and a current state of the local file system of a client device;

generate a first file event associated with a content item based on the identified difference between the local tree and the local file system of the client device;

determine that the first file event violates a local tree constraint in a set of local tree constraints, wherein the local tree constraint comprises a requirement that all structures necessary to update the local tree are present in a set of observed file events or that data associated with the set of observed file events complies with a rule of the client synchronization service which must be fulfilled;

perform a remediation associated with the violated local tree constraint; and

update the local tree based on the first file event after perform the remediation associated with the violated local tree constraint.

12. The non-transitory computer readable medium of claim 11 , wherein the first file event is one of an add, a delete, an edit, or a move of the content item on the local file system of the client device.

13. The non-transitory computer readable medium of claim 11 , wherein the instructions further cause the computing system to identify a difference between the local tree and the local file system, wherein the first file event is based on the difference between the local tree and the local file system.

14. The non-transitory computer readable medium of claim 11 , wherein the instructions further cause the computing system to:

determine, based on a difference between the local tree and a sync tree representing a known synced state between a server state and the last known state of the local file system, that the server state and the last known state of the local file system are out of sync;

generate, based on the difference, a set of operations for the content items stored by a content management system, wherein the set of operations is configured to operate on the content items stored by the content management system to converge the server state and the last known state of the local file system; and

manage execution of the set of operations.

15. A system comprising:

a 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 difference between a local tree that represents a previous state of a local file system and a current state of the local file system of a client device;

generate a first file event associated with a content item based on the identified difference between the local tree and the local file system of the client device;

add the first file event to a set of observed file events;

determine that the first file event violates a local tree constraint in a set of local tree constraints, wherein the local tree constraint comprises a requirement that all structures necessary to update the local tree are present in the set of observed file events or that data associated with the set of observed file events complies with a rule of a synchronization service which must be fulfilled;

perform a remediation associated with the violated local tree constraint; and

update the local tree based on the set of observed file events after perform the remediation associated with the violated local tree constraint.

16. The system of claim 15 , wherein the instructions further cause the one or more processors to:

detect a second file event associated with the add of a parent of the content item; and

add the second file event to the set of observed file events.

17. The system of claim 15 , wherein the instructions further cause the one or more processors to identify a difference between the local tree and the local file system, wherein the file event is based on the difference between the local tree and the local file system.

18. The system of claim 15 , wherein the instructions further cause the one or more processors to determine, after the remediation is performed, that the set of observed file events satisfies the set of local tree constraints, wherein the update of the local tree is based on satisfaction of the set of local tree constraints.

19. The system of claim 15 , wherein the instructions further cause the one or more processors to:

determine, based on a difference between the local tree and a sync tree representing a known synced state between a server state and a last known state of the local file system, that the server state and the last known state of the local file system are out of sync;

generate, based on the difference, a set of operations for the content items stored by a content management system, wherein the set of operations is configured to operate on the content items stored by the content management system to converge the server state and the last known state of the local file system; and

manage execution of the set of operations.

20. The system of claim 15 , wherein the local tree is stored on the client device.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2018
From: LAI, JOHN
To: DROPBOX, INC.
Reel/Frame 046425/0523 →
Continuity (2)
Provisional Application 62611473 · Dec 28, 2017
Related Publication 20190205411A1 · Jul 4, 2019