IP Library Granted Patent US 9,817,878
Granted Patent B2
US 9,817,878 · App. 15/133,185 · Granted Nov 14, 2017

Storage constrained synchronization of shared content items

Inventor: Benjamin Zeis Newhouse (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F17/30575G06F17/30117G06F17/30371H04L67/1095H04L67/1097
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,817,878
App. No.
15/133,185
Granted
Nov 14, 2017
Kind
B2
Abstract

A content management system synchronizes content items across client computing systems connected by a network. Each client device has a storage allocation for synchronized shared content items. If the storage allocation for shared content items on a client device is exceeded by the request to add or edit a content item such that it is enlarged, or open a large content item remote to the client device, a client application or the host of content management system selects content items to remove from residence on the client device but keep remotely on content management system. Upon removal of the selected content items, the client application creates shadow items, representing the content item but only containing the metadata of the content item. This creates sufficient space for the initial request to be completed while maintaining user access to all synchronized shared content items.

Claims (54)

1. A computer-implemented method of synchronizing content items, the method comprising:

storing by a client device a shadow item, wherein the shadow item represents a content item stored on a separate host device that is remote to the client device and the shadow item is comprised of metadata of the content item stored on the client device, the metadata including a size of the represented content item, without content data of the content item being on the client device;

determining from the metadata of the shadow item that the size of the represented content item exceeds a remaining amount of storage allocated on the client device;

selecting at least one content item to remove from the client device, each selected content item already stored on the host device, by:

accessing a list of content items synchronized between the client device and the host device, the list indicating a most recent access time for each content item; and

selecting one or more least recently accessed listed content items such that the total size of the selected content items is greater than or equal to the size of the represented content item;

replacing each selected content item with a shadow item representing the selected content item on the client device;

retrieving the represented content item from the host device; and

replacing the shadow item representing the represented content item with the represented content item.

2. The method of claim 1 , wherein replacing each selected content item further comprises:

creating by the client device a shadow item on the local device representing each selected content item; and

deleting by the client device each selected content item from the local device.

3. The method of claim 1 , wherein replacing the shadow item representing the represented content item further comprises:

downloading by the client device the represented content item from the host device; and

storing the downloaded content item on the client device.

4. The method of claim 1 , further comprising prior to replacing each selected content item with a shadow item, synchronizing each content item with the host device.

5. The method of claim 1 , wherein an amount of storage space allocated on the client device is read from a configuration file configured in response to settings specified by the user.

6. The method of claim 1 , wherein replacing each selected content item with a shadow item representing the selected content item on the client device further comprises:

adding by the client device an identifier for each selected content item to a list maintained by the client device indicating content items for which the client device does not request synchronization from the host device.

7. The method of claim 1 , wherein replacing each selected content item with a shadow item representing the selected content item on the client device further comprises:

sending by the client device to the host device a message specifying an identifier for each selected content item, whereby the identifier is added to a list of content items maintained by the host device that the host device does not synchronize with the client device.

8. A computer-implemented method of synchronizing content items, the method comprising:

receiving by a host system a request to synchronize a content item from a client device, where the host system is remote from the client device;

responsive to determining that the requested content item is a shadow item, wherein the shadow item is comprised of metadata of the requested content item stored on the client device, without content data of the requested content item being stored on the client device:

determining, by the host system, that downloading the requested content item to the client device would exceed a predetermined storage limit on the client device for storing content items;

selecting by the host system, at least one content item to remove from the client device, each selected content item already stored on the host device, by:

accessing a list of content items synchronized between the client device and the host device, the list indicating a most recent access time for each content item; and

selecting one or more least recently accessed listed content items such that the total size of the selected content items is greater than or equal to the size of the requested content item;

adding by the host system the selected content items to a list of shadow items on the client device;

sending an instruction to the client device to replace the selected content items with shadow items; and

downloading the requested content item content to the client device.

9. The method of claim 8 , wherein the host system maintains attributes used for selecting the at least on content item to remove from the client device.

10. The method of claim 8 , wherein the host system maintains a list of shadow items for each client device.

11. The method of claim 8 , wherein the instruction to replace the selected content items with shadow items includes the shadow items.

12. The method of claim 1 , wherein selecting one or more most recently accessed listed content items further comprises selecting one or more content items based on a total size of the selected content items.

13. The method of claim 1 , wherein the list indicates a most recent access time for each content item by one or more of the client device and a device other than the client device.

14. The method of claim 1 , wherein selecting one or more recently accessed listed content items further comprises excluding all content items marked to remain resident on the client device from selection.

15. A computer-implemented method of synchronizing content items, the method comprising:

storing by a client device a shadow item, wherein the shadow item represents a content item stored on a separate host device that is remote to the client device and the shadow item is comprised of metadata of the content item stored on the client device, the metadata including a size of the represented content item, without content data of the content item being on the client device;

determining from the metadata of the shadow item that the size of the represented content item exceeds a remaining amount of storage allocated on the client device;

selecting at least one content item to remove from the client device, each selected content item already stored on the host device, by:

accessing a list of content items synchronized between the client device and the host device, the list indicating a size for each content item; and

selecting one or more most listed content items such that the total size of the selected content items is greater than or equal to the size of the represented content item;

replacing each selected content item with a shadow item representing the selected content item on the client device;

retrieving the represented content item from the host device; and

replacing the shadow item representing the represented content item with the represented content item.

16. The method of claim 15 , wherein replacing each selected content item further comprises:

creating by the client device a shadow item on the local device representing each selected content item; and

deleting by the client device each selected content item from the local device.

17. The method of claim 15 , wherein replacing the shadow item representing the represented content item further comprises:

downloading by the client device the represented content item from the host device; and

storing the downloaded content item on the client device.

18. The method of claim 15 , further comprising prior to replacing each selected content item with a shadow item, synchronizing each content item with the host device.

19. The method of claim 15 , wherein an amount of storage space allocated on the client device is read from a configuration file configured in response to settings specified by the user.

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 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2016
From: NEWHOUSE, BENJAMIN Z.
To: DROPBOX, INC.
Reel/Frame 038526/0038 →
Continuity (2)
Continuation 14611115 · Jan 30, 2015
Related Publication 20160232220A1 · Aug 11, 2016