IP Library Granted Patent US 10,324,903
Granted Patent B1
US 10,324,903 · App. 15/868,518 · Granted Jun 18, 2019

Content management client synchronization service

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,324,903
App. No.
15/868,518
Granted
Jun 18, 2019
Kind
B1
Abstract

The disclosed technology relates to a system configured to obtain a set of tree data structures including a remote tree representing a server state of content items associated with a user account on a content management system, a local tree representing a file system state of content items associated with the user account on a client device, and a sync tree representing a known sync state between the content management system and the client device. The system is configured to determine that the user account on the content management system includes at least one modification not synchronized to the client device by comparing the remote tree and the sync tree.

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 method comprising:

obtaining a set of tree data structures including

a remote tree representing a server state of content items associated with the user account on the content management system during a current time period,

a local tree representing a file system state of content items associated with the user account on the client device during the current time period, and

a sync tree representing a known sync state during a previous time period where the sync tree, the local tree, and the remote tree were identical, wherein the sync tree includes representations of content items that, during the previous time period, were included in both the local tree and the remote tree;

determining that the user account on the content management system includes at least one modification not synchronized to the client device by comparing the remote tree and the sync tree; and

determining that the client device includes at least one modification not synchronized to the content management system by comparing the sync tree and the local tree.

2. The computer-implemented method of claim 1 , wherein the set of tree data structures is stored on the client device.

3. The computer-implemented method of claim 1 , wherein the determining that the user account on the content management system includes at least one modification not synchronized to the client device comprises generating a set of operations.

4. The computer-implemented method of claim 3 , wherein the set of operations is configured to operate on the content items stored on the client device to converge the server state and the file system state.

5. The computer-implemented method of claim 1 , wherein the determining that the client device includes at least one modification not synchronized to the content management system comprises generating a set of operations.

6. The computer-implemented method of claim 5 , 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.

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

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

updating, based on the client modification data, the local tree.

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

9. The computer-implemented method of claim 1 , 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.

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

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

obtain a set of tree data structures including

a remote tree representing a server state of content items associated with a user account on a content management system during a current time period,

a local tree representing a file system state of content items associated with the user account on a client device during the current time period, and

a sync tree representing a known sync state during a previous time period where the sync tree, the local tree, and the remote tree were identical, wherein the sync tree includes representations of content items that, during the previous time period, were included in both the local tree and the remote tree; and

determine that the user account on the content management system includes at least one modification not synchronized to the client device by comparing the remote tree and the sync tree.

12. The non-transitory computer readable medium of claim 11 , wherein instructions further cause the computing system to generate a set of operations configured to operate on the content items stored on the client device to converge the server state and the file system state.

13. The non-transitory computer readable medium of claim 11 , wherein instructions further cause the computing system to determine that the client device includes at least one modification not synchronized to the content management system by comparing the sync tree and the local tree.

14. The non-transitory computer readable medium of claim 13 , wherein instructions further cause the computing system to generate a set of operations configured to operate on the content items stored by the content management system to converge the server state and the file system state.

15. The non-transitory computer readable medium of claim 11 , wherein the set of tree data structures is stored on the client device.

16. A system comprising:

a processor; and

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

obtain a set of tree data structures including

a remote tree representing a server state of content items associated with a user account on a content management system during a current time period,

a local tree representing a file system state of content items associated with the user account on a client device during the current time period, and

a sync tree representing a known sync state during a previous time period where the sync tree, the local tree, and the remote tree were identical, wherein the sync tree includes representations of content items that, during the previous time period, were included in both the local tree and the remote tree; and

determine that the client device includes at least one modification not synchronized to the content management system by comparing the sync tree and the local tree.

17. The system of claim 16 , wherein instructions further cause the processor to generate a set of operations configured to operate on the content items stored by the content management system to converge the server state and the file system state.

18. The system of claim 16 , wherein instructions further cause the processor to:

determine that the user account on the content management system includes at least one modification not synchronized to the client device by comparing the remote tree and the sync tree; and

generate a set of operations configured to operate on the content items stored on the client device to converge the server state and the file system state.

19. The system of claim 16 , wherein instructions further cause the processor to:

receive client modification data for content items stored on the client device; and

update, based on the client modification data, at least one of the local tree or the sync tree.

20. The system of claim 16 , wherein instructions further cause the processor to:

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

update, based on the server modification data, at least one of the remote tree or the sync tree.

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 IV, ELMER CHARLES
To: DROPBOX, INC.
Reel/Frame 046356/0104 →
Cited By (1)
US 12,711,103