IP Library Granted Patent US 11,657,067
Granted Patent B2
US 11,657,067 · App. 17/230,249 · Granted May 23, 2023

Updating a remote tree for a client synchronization service

Inventors: Robert Ying (San Francisco, CA); Nipunn Koorapati (San Francisco, CA); Gautam Gupta (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/01H04L67/306
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,657,067
App. No.
17/230,249
Granted
May 23, 2023
Kind
B2
Abstract

The disclosed technology relates to a system configured to receive operations data from a content management system, wherein the operations data comprises a log of operations, execute the log of operations, and update, based on execution of the log of operations, a remote tree representing a server state for content items stored on the content management system.

Claims (46)

1. A computer-implemented method comprising:

receiving operations data from a content management system, wherein the operations data comprises a log of operations;

comparing a remote tree representing a server state of content items stored on the content management system to the log of the operations to determine a subset of the log of the operations to be applied to bring the remote tree up to date;

executing the subset of the log of the operations;

updating, based on execution of the log of the operations, the remote tree;

determining that the updated remote tree and a sync tree are out of sync, the sync tree representing a difference between the server state associated with the remote tree and a file system state associated with a local tree, the local tree representing the file system state for the content items stored on a client device; and

generating, based on a difference between the updated remote tree and the sync tree, a set of operations that perform converging of the server state associated with the remote tree and the file system state associated with the local tree.

2. The computer-implemented method of claim 1 , further comprising transmitting a cursor to the content management system, wherein the log of the operations is based on the cursor.

3. The computer-implemented method of claim 1 , wherein the operations data comprises linearized operations across a plurality of namespaces.

4. The computer-implemented method of claim 1 , wherein the operations data comprises revisions data for a namespace of a plurality of namespaces.

5. The computer-implemented method of claim 1 , further comprising managing the execution of the set of operations.

6. The computer-implemented method of claim 1 , wherein the remote tree and the sync tree are stored at the client device.

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

receiving, from the content management system, a mount notification for mounting a target namespace within an existing namespace represented in the remote tree;

receiving, from the content management system, an initial portion of a log of operations for the target namespace;

building a subtree for the target namespace based on the initial portion of the log of the operations received from the content management system; and

mounting the subtree for the target namespace at a mount location of the remote tree.

8. The computer-implemented method of claim 7 , wherein the initial portion of the log of the operations is bounded by a start of the log of the operations to a cursor value for a mount operation detected by the content management system.

9. The computer-implemented method of claim 7 , wherein the subtree for the target namespace is mounted after the initial portion of the log of the operations is processed to build the subtree.

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

receiving, from the content management system, a mount operation for the target namespace, wherein the mount operation is associated with the existing namespace and specifies the mount location in the existing namespace; and

wherein the target namespace is mounted at the mount location in response to the mount operation.

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

receive operations data from a content management system, wherein the operations data comprises a log of operations;

compare a remote tree representing a server state of content items stored on the content management system to the log of the operations to determine a subset of the log of the operations to be applied to bring the remote tree up to date;

execute the subset of the log of the operations;

update, based on execution of the log of the operations, the remote tree;

determine that the updated remote tree and a sync tree are out of sync, the sync tree representing a difference between the server state associated with the remote tree and a file system state associated with a local tree, the local tree representing the file system state for the content items stored on a client device; and

generate, based on a difference between the updated remote tree and the sync tree, a set of operations that perform converging of the server state associated with the remote tree and the file system state associated with the local tree.

12. The non-transitory computer readable medium of claim 11 , wherein the instructions further cause the computing system to transmit a cursor to the content management system, wherein the log of the operations is based on the cursor.

13. The non-transitory computer readable medium of claim 11 , wherein the operations data comprises linearized operations across a plurality of namespaces.

14. The non-transitory computer readable medium of claim 11 , wherein the operations data comprises revisions data for a namespace of a plurality of namespaces.

15. The non-transitory computer readable medium of claim 11 , wherein the instructions further cause the computing system to manage the execution of the set of operations.

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:

receive operations data from a content management system, wherein the operations data comprises a log of operations;

compare a remote tree representing a server state of content items stored on the content management system to the log of the operations to determine a subset of the log of the operations to be applied to bring the remote tree up to date;

execute the subset of the log of the operations;

update, based on execution of the log of the operations, the remote tree;

determine that the updated remote tree and a sync tree are out of sync, the sync tree representing a difference between the server state associated with the remote tree and a file system state associated with a local tree, the local tree representing the file system state for the content items stored on a client device; and

generate, based on a difference between the updated remote tree and the sync tree, a set of operations that perform converging of the server state associated with the remote tree and the file system state associated with the local tree.

17. The system of claim 16 , wherein the instructions further cause the processor to transmit a cursor to the content management system, wherein the log of the operations is based on the cursor.

18. The system of claim 16 , wherein the operations data comprises linearized operations across a plurality of namespaces.

19. The system of claim 16 , wherein the operations data comprises revisions data for a namespace of a plurality of namespaces.

20. The system of claim 16 , wherein the instructions further cause the processor to manage the execution of the set of operations.

Assignments (2)
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2021
From: YING, ROBERT; KOORAPATI, NIPUNN; GUPTA, GAUTAM
To: DROPBOX, INC.
Reel/Frame 055916/0700 →