IP Library Granted Patent US 11,423,048
Granted Patent B2
US 11,423,048 · App. 17/077,719 · Granted Aug 23, 2022

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 11,423,048
App. No.
17/077,719
Granted
Aug 23, 2022
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 (48)

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

obtaining a set of tree data structures including a sync tree representing a known sync state during a previous time period, wherein the sync tree includes representations of content items associated with the user account that, during the previous time period, were associated with both a server state of the content items and a file system state the content items; and

determining, based on the sync tree, that the user account on the content management system includes at least one first modification not synchronized to the client device, or that the client device includes at least one second modification not synchronized to the user account on the content management system.

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

based on the at least one first modification or the at least one second modification, generating a set of operations that synchronize at least a part of the set of tree data structures.

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

for each operation in the set of operations, generating a set of one or more tasks to be executed to perform the each operation.

4. The computer-implemented method of claim 1 , wherein one or more nodes of a tree data structure of the set of tree data structures have respective parent nodes, wherein each of the one or more nodes comprise data including a directory file identifier of the respective parent nodes.

5. The computer-implemented method of claim 1 , wherein the determining further comprises:

requesting a file identifier of each node of the sync tree, wherein each content item is associated with a respective file identifier; and

determining if each file identifier is found in another tree data structure of the set of tree data structures.

6. The computer-implemented method of claim 5 , wherein the determining further comprises:

based on the determining, comparing metadata for each node sharing a same file identifier with a node in the another tree data structure; and

when the comparing of the metadata yields a difference, determining that a respective node in the another tree data structure was modified or moved.

7. The computer-implemented method of claim 6 , further comprises:

generating a set of operations to perform on the content items stored on the client device based on the determination that the respective node in the another tree data structure was modified or moved.

8. A non-transitory computer readable medium comprising instructions for synchronizing content items between a user account on a content management system and a client device authorized to access the user account, the instructions, when executed by a computing system, cause the computing system to:

obtain a set of tree data structures including a sync tree representing a known sync state during a previous time period, wherein the sync tree includes representations of content items associated with the user account that, during the previous time period, were associated with both a server state of the content items and a file system state the content items; and

determine, based on the sync tree, that the user account on the content management system includes at least one first modification not synchronized to the client device, or that the client device includes at least one second modification not synchronized to the user account on the content management system.

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

based on the at least one first modification or the at least one second modification, generate a set of operations that synchronize at least a part of the set of tree data structures.

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

for each operation in the set of operations, generate a set of one or more tasks to be executed to perform the each operation.

11. The non-transitory computer readable medium of claim 8 , wherein one or more nodes of a tree data structure of the set of tree data structures have respective parent nodes, wherein each of the one or more nodes comprise data including a directory file identifier of the respective parent nodes.

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

request a file identifier of each node of the sync tree, wherein each content item is associated with a respective file identifier; and

determine if each file identifier is found in another tree data structure of the set of tree data structures.

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

based on the determining, compare metadata for each node sharing a same file identifier with a node in the another tree data structure; and

when the comparing of the metadata yields a difference, determine that a respective node in the another tree data structure was modified or moved.

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

generate a set of operations to perform on the content items stored on the client device based on the determination that the respective node in the another tree data structure was modified or moved.

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:

obtain a set of tree data structures including a sync tree representing a known sync state during a previous time period, wherein the sync tree includes representations of content items associated with a user account that, during the previous time period, were associated with both a server state of the content items and a file system state the content items; and

determine, based on the sync tree, that the user account on a content management system includes at least one first modification not synchronized to a client device, or that the client device includes at least one second modification not synchronized to the user account on the content management system.

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

based on the at least one first modification or the at least one second modification, generate a set of operations that synchronize at least a part of the set of tree data structures.

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

for each operation in the set of operations, generate a set of one or more tasks to be executed to perform the each operation.

18. The system of claim 16 , wherein one or more nodes of a tree data structure of the set of tree data structures have respective parent nodes, wherein each of the one or more nodes comprise data including a directory file identifier of the respective parent nodes.

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

request a file identifier of each node of the sync tree, wherein each content item is associated with a respective file identifier; and

determine if each file identifier is found in another tree data structure of the set of tree data structures.

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

based on the determining, compare metadata for each node sharing a same file identifier with a node in the another tree data structure; and

when the comparing of the metadata yields a difference, determine that a respective node in the another tree data structure was modified or moved.

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 Oct 22, 2020
From: GOLDBERG, ISAAC; JAYAKAR, SUJAY; LAI, JOHN; YING, ROBERT; KOORAPATI, NIPUNN; GUPTA, GAUTAM; SONG, GEOFFRY; JUBB, ELMER CHARLES, IV
To: DROPBOX, INC.
Reel/Frame 054142/0893 →