IP Library Granted Patent US 10,877,993
Granted Patent B2
US 10,877,993 · App. 15/858,146 · Granted Dec 29, 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,877,993
App. No.
15/858,146
Granted
Dec 29, 2020
Kind
B2
Abstract

The disclosed technology relates to a system configured to detect a delete event for a content item at a first location on a local file system of a client device, wherein the first location on the file system is managed by a content management service. The system determines a second location for the content item and whether the delete event is associated with an add event for the content item based on the second location of the content item. If the delete event is associated with the add event, the system processes the delete event with the add event in a unitary update to a local tree, wherein the local tree represents a file system state.

Claims (66)

1. A computer-implemented method comprising:

detecting a delete event for a content item at a first location on a local file system of a client device, wherein the first location on the local file system is managed by a content management system;

identifying, based on the detecting the delete event, an operating system provided file

identifier for the content item;

querying, using the operating system provided file identifier, the operating system of the client device for a second location for the content item;

determining, based on the querying for the second location, that the delete event is associated with an add event for the content item based on the second location of the content item;

detecting the add event for the content item; and

based on the detecting the add event, processing the delete event for the content item at the first location with the add event for the content item at the second location in a unitary update to a local tree, wherein the local tree represents a file system state.

2. The computer-implemented method of claim 1 , further wherein the delete event is associated with the add event when the second location of the content item is managed by the content management system.

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

determining that the delete event is not associated with the add event for the content item based on the second location of the content item; and

processing the delete event.

4. The computer-implemented method of claim 3 , wherein the delete event is not associated with the add event when the second location is not managed by the content management system.

5. The computer-implemented method of claim 1 , wherein the operating system provided file identifier is an Mode identifier.

6. The computer-implemented method of claim 1 , wherein the add event is at the second location for the content item.

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

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

adding the delete event and the add 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;

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

the local tree based on the set of observed file events.

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

determining that a server state and the file system state 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 file system state;

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

managing execution of the set of operations.

10. A non-transitory computer readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to:

detect a delete event for a content item at a first location on a local file system of a client device, wherein the first location on the local file system is managed by a content management system;

determine, based on the detecting of the delete event, a second location for the content item;

determine, based on the determining of the second location, that the delete event is associated with an add event for the content item based on the second location of the content item; and

based on the determining that the delete event is associated with the add event, process the delete event with the add event in a unitary update to a local tree, wherein the local tree represents a file system state.

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

identify an operating system provided file identifier for the content item; and

query, using the operating system provided file identifier, the operating system of the client device for the second location.

12. The non-transitory computer readable medium of claim 10 , wherein the delete event is associated with the add event when the second location of the content item is managed by the content management system.

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

determine that the delete event is not associated with the add event for the content item based on the second location of the content item; and

process the delete event.

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

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

add the delete event and the add event to a set of observed file events;

determine that the set of observed file events violates a local tree constraint in a set of local tree constraints;

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

the local tree based on the set of observed file events.

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

determine that a server state and the file system state 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 file system state;

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 file system state; and

manage execution of the set of operations.

17. A system comprising:

one or more processors; and

a non-transitory computer-readable medium storing instructions that, when executed by the processor, cause the one or more processors to:

detect a delete event for a content item at a first location on a local file system of a client device, wherein the first location on the file system is managed by a content management system;

determine, based on the detecting the delete event, a second location for the content item;

determine, based on the determination of the second location, that the delete event is not associated with an add event for the content item based on the second location of the content item; and

process, based on the determining that the delete event is not associated with the add event, the delete event.

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

determine that the delete event is associated with the add event for the content item based on the second location of the content item; and

process the delete event with the add event in a unitary update to a local tree, wherein the local tree represents a file system state.

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

add the delete event and the add event to a set of observed file events;

determine that the set of observed file events 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.

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

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

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

manage execution of the set of operations.

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 Aug 22, 2018
From: LAI, JOHN
To: DROPBOX, INC.
Reel/Frame 046665/0648 →