IP Library Granted Patent US 10,949,445
Granted Patent B2
US 10,949,445 · App. 15/868,511 · Granted Mar 16, 2021

Content management client synchronization service

Inventors: Isaac Goldberg (San Francisco, CA); Sujay Jayakar (San Francisco, CA); John Lai (San Francisco, CA); Robert Ying (San Francisco, CA); Nipunn Koorapati (San Francisco, CA); Gautam Gupta (San Francisco, CA); Geoffry Song (San Francisco, CA); Elmer Charles Jubb, IV (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,949,445
App. No.
15/868,511
Granted
Mar 16, 2021
Kind
B2
Abstract

The disclosed technology relates to a system configured to compute a difference between a remote tree data structure representing a server state for content items associated with an account on a content management system and a sync tree data structure representing a known synchronization state between the content management system and the computing system. The system is configured to generate, based on the difference, a set of operations that when performed on the computing system update the content items stored on the client device to converge a file system state on the computing system and the server state.

Claims (42)

1. A computer-implemented method for synchronizing modifications to a user account on a content management system to a client device authorized to access the user account, the computer-implemented method comprising:

computing a difference between a remote tree data structure representing a server state for content items associated with the user account on the content management system and a sync tree data structure representing a last known synchronization state between the content management system and the client device; and

generating, based on the difference, a set of operations that when performed on the client device update the content items stored on the client device to converge a file system state on the client device and the server state.

2. The computer-implemented method of claim 1 , wherein the sync tree data structure comprises one or more nodes having metadata, wherein the metadata reveals a last known synchronization state of each respective node corresponding to content items that were last synchronized.

3. The computer-implemented method of claim 1 , wherein the remote tree data structure and the sync tree data structure are stored on the client device.

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

receiving, from the client device, client modification data for content items stored on the client device; and

updating, based on the client modification data, a local tree data structure representing a file state for content items associated with the user account on the client device.

5. The computer-implemented method of claim 4 , further comprising updating, based on the client modification data, the sync tree data structure.

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

computing a second difference between a local tree data structure representing the file system state for content items associated with the user account on the client device and the sync tree data structure representing a second known synchronization state between the content management system and the client device;

generating, based on the difference, a second set of operations that when performed update the content items stored on the content management system to converge the server state for content items associated the user account on the content management system and the file system state; and

managing execution of the second set of operations.

7. The computer-implemented method of claim 6 , wherein the local tree data structure is stored on the client device.

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

receiving, from the content management system, server modification data for content items stored by the content management system; and

updating, based on the server modification data, the remote tree data structure.

9. The computer-implemented method of claim 8 , further comprising updating, based on the server modification data, the sync tree data structure.

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

compute a difference between a remote tree data structure representing a server state for content items associated with an account on a content management system and a sync tree data structure representing a last known synchronization state between the content management system and the computing system; and

generate, based on the difference, a set of operations that when performed on the computing system update the content items stored on a computing system to converge a file system state on the computing system and the server state.

11. The non-transitory computer readable medium of claim 10 , wherein the sync tree data structure comprise one or more nodes having metadata, wherein the metadata reveals a last known synchronization state of each respective node corresponding to content items that were last synchronized.

12. The non-transitory computer readable medium of claim 10 , wherein the remote tree data structure and the sync tree data structure are stored on the computing system.

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

receive, from the computing system, client modification data for content items stored on the computing system; and

update, based on the client modification data, a local tree data structure representing a file state for content items associated with a user account on the computing system.

14. The non-transitory computer readable medium of claim 13 , wherein instructions further cause the computing system to update, based on the client modification data, the sync tree data structure.

15. 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:

compute a difference between a remote tree data structure representing a server state for content items associated with a user account on a content management system and a sync tree data structure representing a last known synchronization state between the content management system and the system; and

generate, based on the difference, a set of operations that when performed on the system, update the content items stored on a system to converge a file system state on the system and the server state.

16. The system of claim 15 , wherein the sync tree data structure comprise one or more nodes having metadata, wherein the metadata reveals a last known synchronization state of each respective node corresponding to content items that were last synchronized.

17. The system of claim 15 , wherein the remote tree data structure and the sync tree data structure are stored on the system.

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

receive, from the system, client modification data for content items stored by the system; and

update, based on the client modification data, a local tree data structure representing a file state for content items associated with the user account on the system.

19. The system of claim 18 , wherein instructions further cause the one or more processors to update, based on the client modification data, the sync tree data structure.

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

compute a second difference between a local tree data structure representing the file system state for content items associated with the user account on the system and the sync tree data structure representing a known synchronization state between the content management system and the system;

generate, based on the difference, a second set of operations that when performed update the content items stored on the content management system to converge the server state for content items associated the user account on the content management system and the file system state; and

managing execution of the second 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 Jul 16, 2018
From: GOLDBERG, ISAAC; JAYAKAR, SUJAY; LAI, JOHN; YING, ROBERT; KOORAPATI, NIPUNN; GUPTA, GAUTAM; SONG, GEOFFRY; JUBB, ELMER CHARLES, IV
To: DROPBOX, INC.
Reel/Frame 046358/0362 →