IP Library Granted Patent US 10,922,333
Granted Patent B2
US 10,922,333 · App. 15/858,110 · Granted Feb 16, 2021

Efficient management of client synchronization updates

Inventors: John Lai (San Francisco, CA); Isaac Goldberg (San Francisco, CA); Sujay Jayakar (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/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,922,333
App. No.
15/858,110
Granted
Feb 16, 2021
Kind
B2
Abstract

The disclosed technology relates to a system configured to identify a first operation in a first set of operations configured to converge a server state and a file system state, wherein the first operation is not in a second set of operations generated in response to an change to at least one of the server state and the file system state. The system is further configured to cancel the first operation, identify a second operation in both the first set of operations and the second set of operations, and initiate execution of the second operation concurrently with the canceling of the first operation.

Claims (65)

1. A computer-implemented method comprising:

receiving a first set of operations configured to converge a server state representing content items stored on a server of a content management system and a file system state representing content items stored on a client device;

receiving a second set of operations, prior to completing executing the first set of operations, the second set of operations configured to converge the server state and the file system state after a client synchronization service identifies a change to at least one of the server state and the file system state;

identifying a first operation in the first set of operations that is not in the second set of operations;

initiating canceling the first operation;

identifying a second operation in both the first set of operations and the second set of operations; and

initiating execution of the second operation without waiting for the cancellation of the first operation to be completed.

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

identifying a third operation in the second set of operations that is not in the first set of operations;

determining that the canceling of the first operation has completed; and

initiating, in response to the determining, execution of the third operation.

3. The computer-implemented method of claim 1 , further comprising initiating execution of the first set of operations.

4. The computer-implemented method of claim 1 , wherein each operation in the first set of operations is configured to be concurrently executable and each operation in the second set of operations is configured to be concurrently executable.

5. The computer-implemented method of claim 1 , wherein initiating execution of the second operation comprises:

identifying a script associated with the second operation, wherein the script defines multiple steps to be performed to complete the second operation; and

executing the script.

6. The computer-implemented method of claim 1 , wherein initiating execution of the second operation comprises:

transmitting instructions associated with the second operation to the content management system for execution on the server state.

7. The computer-implemented method of claim 1 , wherein initiating execution of the second operation comprises:

transmitting instructions associated with the second operation to the client device for execution on the file system state.

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

identifying a first difference between a sync tree and at least one of a remote tree and a local tree, wherein the sync tree represents a known synced state between the server state and the file system state, the remote tree represents the server state, and the local tree represents the file system state; and

generating, based on the first difference, the first set of operations configured to converge the server state and the file system state.

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

identifying a second difference between the sync tree and at least one of the remote tree and the local tree; and

generating, based on the second difference, the second set of operations configured to converge the server state and the file system state after a change to at least one of the server state and the file system state.

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

receiving server modification data for content items stored by a content management service; and

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

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

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

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

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

receive a first set of operations configured to converge a server state representing content items stored on a server of a content management system and a file system state representing content items stored on a client device;

receive a second set of operations, prior to completing executing the first set of operations, the second set of operations configured to converge the server state and the file system state after a client synchronization service identifies a change to at least one of the server state and the file system state;

identify a first operation in the first set of operations that is not in the second set of operations;

initiate canceling the first operation;

identify a second operation in the second set of operations that is not in the first set of operations; and

initiate execution of the second operation without waiting for the cancellation of the first operation to be completed.

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

identify a third operation in both the first set of operations and the second set of operations; and

initiate execution of the third operation concurrently with the initiating canceling of the first operation.

14. The non-transitory computer-readable medium of claim 12 , wherein each of the operations in the first set of operations is configured to be concurrently executable and each of the operations in the second set of operations is configured to be concurrently executable.

15. The non-transitory computer-readable medium of claim 12 , wherein the instructions to initiate execution of the second operation cause the computing system to:

transmit instructions associated with the second operation to the at least one of the content management system for execution on the server state or the client device for execution on the file system state.

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

identify a difference between a sync tree and at least one of a remote tree and a local tree, wherein the sync tree represents a known synced state between the server state and the file system state, the remote tree represents the server state, and the local tree represents the file system state; and

generate, based on the difference, the second set of operations configured to converge the server state and the file system state.

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:

identify a first operation in a first set of operations configured to converge a server state representing content items stored on a server of a content management system and a file system state representing content items stored on a client device, wherein the first operation is not in a second set of operations generated in response to a change to at least one of the server state and the file system state;

initiate cancelling the first operation;

identify a second operation in both the first set of operations and the second set of operations; and

initiate execution of the second operation without waiting for the cancellation of the first operation to be completed.

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

identify a third operation in the second set of operations that is not in the first set of operations;

determine that canceling of the first operation has completed; and

initiate, in response to completion of the first operation canceling, execution of the third operation.

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

identify a difference between a sync tree and at least one of a remote tree and a local tree, wherein the sync tree represents a known synced state between the server state and the file system state, the remote tree represents the server state, and the local tree represents the file system state; and

generate, based on the difference, the second set of operations configured to converge the server state and the file system state.

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

receive modification data for content items associated with a content management service; and

update, based on the modification data, at least one of the remote tree or the local 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 Aug 6, 2018
From: LAI, JOHN; GOLDBERG, ISAAC; JAYAKAR, SUJAY
To: DROPBOX, INC.
Reel/Frame 046558/0448 →