IP Library Granted Patent US 9,934,303
Granted Patent B2
US 9,934,303 · App. 15/420,003 · Granted Apr 3, 2018

Storage constrained synchronization engine

Inventor: Benjamin Zeis Newhouse (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F17/30575G06F17/30191G06F17/30345
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 9,934,303
App. No.
15/420,003
Granted
Apr 3, 2018
Kind
B2
Abstract

A client application of a content management system provides instructions for synchronizing content items and placeholder items using a local file journal and updated file journal. The client application compares entries in the updated file journal to entries in the local file journal to determine modifications to make to content items or placeholder items stored in a shared content storage directory on the client device. Based on the result of the comparison, the client application replaces placeholder items with content items or replaces content items with placeholder items.

Claims (93)

1. A method comprising:

storing, by a client device, in a shared content storage directory on the client device, a plurality of synchronized items including placeholder items and content items, the plurality of synchronized items synchronized with a content management system;

storing, by the client device, a local file journal comprising a plurality of local entries, each local entry representing one of the plurality of synchronized items, wherein each local entry includes a local journal ID of the synchronized item, a local blocklist for the synchronized item, a local file path of the synchronized item, a local deletion confirmation, and a local sync type, the local sync type indicating whether the synchronized item is a placeholder item or a content item;

detecting, by the client device, a modification to the synchronized item stored in the shared content storage directory, wherein the local entry representing the synchronized item indicates that the synchronized item is a placeholder item based on the local sync type of the synchronized item;

responsive to determining that a file path of the placeholder item has been modified, determining whether the modified file path is within the shared content storage directory;

responsive to determining that the modified file path is not within the shared content storage directory, determining whether the modified file path is within deleted file temporary storage of the client device;

responsive to determining that the modified file path is within the deleted file temporary storage:

displaying, by the client device, a first prompt including at least options to maintain content data of the placeholder item on the content management system, and to delete content data of the placeholder item from the content management system;

responsive to determining that the modified file path is not within the deleted file temporary storage:

displaying, by the client device, a second prompt including at least an option to download content data of the placeholder item.

2. The method of claim 1 , wherein responsive to determining that the modified file path is within the deleted file temporary storage further comprising:

displaying, by the client device, the first prompt, wherein the first prompt includes an option to deny relocation of the placeholder item; and

responsive to receiving a user selection of the option to deny relocation of the placeholder item, storing the placeholder item at the local file path instead of the modified file path.

3. The method of claim 1 , further comprising:

responsive to receiving a user selection of the option to maintain content data of the placeholder item:

notifying the content management system to maintain blocks specified in the local blocklist;

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

4. The method of claim 3 , wherein notifying the content management system to maintain blocks specified in the local blocklist further comprises, notifying the content management system to maintain the blocks for a predetermined period of time.

5. The method of claim 3 , wherein notifying the content management system to maintain blocks specified in the local blocklist further comprises, notifying the content management system to maintain the blocks for a user specified period of time.

6. The method of claim 1 , further comprising:

responsive to receiving a user selection of the option to delete content data of the placeholder item from the content management system:

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

7. The method of claim 1 , further comprising:

responsive to receiving a user selection of the option to download content data of the placeholder item:

requesting blocks indicated in the local blocklist from the content management system;

downloading the requested blocks to the client device;

storing the downloaded blocks at the modified filepath;

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

8. A non-transitory computer-readable storage medium storing instructions that, when executed by a client device, cause the client device to perform operations comprising:

storing, by a client device, in a shared content storage directory on the client device, a plurality of synchronized items including placeholder items and content items, the plurality of synchronized items synchronized with a content management system;

storing, by the client device, a local file journal comprising a plurality of local entries, each local entry representing one of the plurality of synchronized items, wherein each local entry includes a local journal ID of the synchronized item, a local blocklist for the synchronized item, a local file path of the synchronized item, a local deletion confirmation, and a local sync type, the local sync type indicating whether the synchronized item is a placeholder item or a content item;

detecting, by the client device, a modification to the synchronized item stored in the shared content storage directory, wherein the local entry representing the synchronized item indicates that the synchronized item is a placeholder item based on the local sync type of the synchronized item;

responsive to determining that a file path of the placeholder item has been modified, determining whether the modified file path is within the shared content storage directory;

responsive to determining that the modified file path is not within the shared content storage directory, determining whether the modified file path is within deleted file temporary storage of the client device;

responsive to determining that the modified file path is within the deleted file temporary storage:

displaying, by the client device, a first prompt including at least options to maintain content data of the placeholder item on the content management system, and to delete content data of the placeholder item from the content management system;

responsive to determining that the modified file path is not within the deleted file temporary storage:

displaying, by the client device, a second prompt including at least an option to download content data of the placeholder item.

9. The non-transitory computer-readable storage medium of claim 8 , wherein responsive to determining that the modified file path is within the deleted file temporary storage further comprising:

displaying, by the client device, the first prompt, wherein the first prompt includes an option to deny relocation of the placeholder item; and

responsive to receiving a user selection of the option to deny relocation of the placeholder item, storing the placeholder item at the local file path instead of the modified file path.

10. The non-transitory computer-readable storage medium of claim 8 , further comprising:

responsive to receiving a user selection of the option to maintain content data of the placeholder item:

notifying the content management system to maintain blocks specified in the local blocklist;

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

11. The non-transitory computer-readable storage medium of claim 10 , wherein notifying the content management system to maintain blocks specified in the local blocklist further comprises, notifying the content management system to maintain the blocks for a predetermined period of time.

12. The non-transitory computer-readable storage medium of claim 10 , wherein notifying the content management system to maintain blocks specified in the local blocklist further comprises, notifying the content management system to maintain the blocks for a user specified period of time.

13. The non-transitory computer-readable storage medium of claim 8 , further comprising:

responsive to receiving a user selection of the option to delete content data of the placeholder item from the content management system:

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

14. The non-transitory computer-readable storage medium of claim 8 , further comprising:

responsive to receiving a user selection of the option to download content data of the placeholder item:

requesting blocks indicated in the local blocklist from the content management system;

downloading the requested blocks to the client device;

storing the downloaded blocks at the modified filepath;

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

15. A system comprising: a processor, and

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

storing, by a client device, in a shared content storage directory on the client device, a plurality of synchronized items including placeholder items and content items, the plurality of synchronized items synchronized with a content management system;

storing, by the client device, a local file journal comprising a plurality of local entries, each local entry representing one of the plurality of synchronized items, wherein each local entry includes a local journal ID of the synchronized item, a local blocklist for the synchronized item, a local file path of the synchronized item, a local deletion confirmation, and a local sync type, the local sync type indicating whether the synchronized item is a placeholder item or a content item;

detecting, by the client device, a modification to the synchronized item stored in the shared content storage directory, wherein the local entry representing the synchronized item indicates that the synchronized item is a placeholder item based on the local sync type of the synchronized item;

responsive to determining that a file path of the placeholder item has been modified, determining whether the modified file path is within the shared content storage directory;

responsive to determining that the modified file path is not within the shared content storage directory, determining whether the modified file path is within deleted file temporary storage of the client device;

responsive to determining that the modified file path is within the deleted file temporary storage:

displaying, by the client device, a first prompt including at least options to maintain content data of the placeholder item on the content management system, and to delete content data of the placeholder item from the content management system;

responsive to determining that the modified file path is not within the deleted file temporary storage:

displaying, by the client device, a second prompt including at least an option to download content data of the placeholder item.

16. The system of claim 15 , wherein responsive to determining that the modified file path is within the deleted file temporary storage further comprising:

displaying, by the client device, the first prompt, wherein the first prompt includes an option to deny relocation of the placeholder item; and

responsive to receiving a user selection of the option to deny relocation of the placeholder item, storing the placeholder item at the local file path instead of the modified file path.

17. The system of claim 15 , further comprising:

responsive to receiving a user selection of the option to maintain content data of the placeholder item:

notifying the content management system to maintain blocks specified in the local blocklist;

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

18. The system of claim 17 , wherein notifying the content management system to maintain blocks specified in the local blocklist further comprises, notifying the content management system to maintain the blocks for a user specified period of time.

19. The system of claim 15 , further comprising:

responsive to receiving a user selection of the option to delete content data of the placeholder item from the content management system:

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

20. The system of claim 15 , further comprising:

responsive to receiving a user selection of the option to download content data of the placeholder item:

requesting blocks indicated in the local blocklist from the content management system;

downloading the requested blocks to the client device;

storing the downloaded blocks at the modified filepath;

committing the placeholder item to the content management system using the local journal ID; and

modifying the local entry to set the local deletion confirmation to indicate that the placeholder item is to be deleted during a hashing process on the client device.

Assignments (6)
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
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 Apr 17, 2017
From: NEWHOUSE, BENJAMIN ZEIS
To: DROPBOX, INC.
Reel/Frame 042269/0223 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
Continuity (3)
Continuation In Part 15396254 · Dec 30, 2016
Provisional Application 62327379 · Apr 25, 2016
Related Publication 20170308599A1 · Oct 26, 2017