IP Library Granted Patent US 9,411,814
Granted Patent B2
US 9,411,814 · App. 14/148,119 · Granted Aug 9, 2016

Predictive caching and fetch priority

Inventors: Daniel Kluesing (San Francisco, CA); Rasmus Andersson (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F17/30132G06F12/0862G06F12/0888
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,411,814
App. No.
14/148,119
Granted
Aug 9, 2016
Kind
B2
Abstract

Predicting what content items a user finds important and sending those items to a cache on the user's device at times when doing so will not drain resources and will not result in expensive data rates. Applying a ranking function that examines recency and other content metadata associated with the user's content items stored in a synchronized content management system. Determining how much of a ranked list of content items to cache and deciding when is a good time to send content items to the local cache.

Claims (73)

1. A computer-implemented method comprising:

receiving, from a mobile device, an amount of free memory available for caching one or more content items from a collection of content items stored in a synchronized content management system, wherein each of the content items in the collection of content items has associated metadata, wherein the metadata associated with a content item comprises:

a File Score calculated based on one or more recency-related events selected from among:

a most recent occurrence of a user of the mobile device opening the content item using an application offered by the synchronized content management system,

a most recent occurrence of the user of the mobile device opening the content item using a third party application,

a most recent occurrence of the user of the mobile device sharing the content item via the mobile device,

a most recent occurrence of another user of the synchronized content management system sharing the content item with the user of the mobile device,

a most recent occurrence of the user of the mobile device sharing the content item via another electronic device,

a most recent occurrence of the user of the mobile device editing the content item, or

a most recent occurrence of the user of the mobile device accessing the content item via another electronic device;

generating, via at least one processor, a scaling factor for each of the content items in the collection based on the associated metadata; and

selecting a subset of content items from the collection based on the generated scaling factors and the amount of free space.

2. The computer-implemented method of claim 1 , wherein selecting a subset of content items from the collection comprises:

generating a ranked list of content items from the collection, wherein an item with a higher scaling factor has a higher rank in the ranked list; and

selecting content items from the ranked list beginning with higher ranked content items until an amount of space required to cache the selected content items fills the amount of free space.

3. The method of claim 2 further comprising:

selecting a plurality of representation quality levels for a content item from the ranked list.

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

automatically caching the selected content items to the mobile device.

5. The method of claim 1 , wherein the amount of free space is expressed as a predetermined percentage of the total free space in the memory of the mobile device.

6. The method of claim 1 , further comprising applying a weighting factor to the one or more recency-related events.

7. The method of claim 1 , wherein metadata associated with a content item comprises:

a PinnedImportance variable for each content item in the collection of content items, wherein the binary PinnedImportance variable indicates a user specified importance level.

8. The method of claim 1 , wherein metadata associated a content item comprises:

a SyncScore indicating a content item modification frequency.

9. The method of claim 1 , wherein metadata associated a content item comprises:

an ObjectiveImportance value indicating a degree to which the synchronized content management system has deemed the content item as important.

10. A system comprising:

a processor;

an account management module configured to receive, from a mobile device, an amount of free memory available for caching one or more content items from a collection of content items stored in a user account database of a synchronized content management system, wherein each of the content items in the collection of content items has associated metadata wherein the metadata associated with a content item comprises at least a File Score value wherein the File Score value is calculated based on one or more recency-related events selected from among:

a most recent occurrence of a user of the mobile device opening the content item using an application offered by the synchronized content management system,

a most recent occurrence of the user of the mobile device opening the content item using a third party application,

a most recent occurrence of the user of the mobile device sharing the content item via the mobile device,

a most recent occurrence of another user of the synchronized content management system sharing the content item with the user of the mobile device,

a most recent occurrence of the user of the mobile device sharing the content item via another electronic device,

a most recent occurrence of the user of the mobile device editing the content item, or

a most recent occurrence of the user of the mobile device accessing the content item via another electronic device; and

a cache prioritization module configured to:

generate a scaling factor for each of the content items in the collection based on the associated metadata;

generate a ranked list of content items from the collection, wherein an item with a higher scaling factor has a higher rank in the ranked list;

select a subset of content items from the collection based on the generated scaling factors and the amount of free space, such that higher ranked content items are selected until an amount of space required to cache the selected content items fills the amount of free space; and

automatically cache the selected content items to the mobile device.

11. The system of claim 10 , wherein metadata associated with a content item further comprises at least one of a PinnedImportance value, a SyncScore value, or an ObjectiveImportance value.

12. The system of claim 11 , wherein the PinnedImportance value comprises a variable that indicates a user specified importance level.

13. The system of claim 11 , wherein the SyncScore value comprises a variable indicating a content item modification frequency.

14. The system of claim 11 , wherein the ObjectiveImportance value comprises a variable indicating a degree to which the synchronized content management system has deemed the content item as important.

15. A non-transitory computer-readable medium comprising:

a medium configured to store computer-readable instructions thereon; and

the computer-readable instructions that, when executed by a processing device cause the processing device to perform a method, comprising:

receiving, from a mobile device, an amount of free memory available for caching one or more content items from a collection of content items stored in a synchronized content management system, wherein each of the content items in the collection of content items has associated metadata;

generating a scaling factor for each of the content items in the collection based on the associated metadata;

generating a ranked list of content items from the collection, wherein an item with a higher scaling factor has a higher rank in the ranked list;

selecting a subset of the content items from the ranked list beginning with higher ranked content items until an amount of space required to cache the selected content items fills the amount of free space; and

automatically caching the selected content items to the mobile device after conducting a mobile device stamina check, wherein the stamina check comprises:

determining whether the mobile device has a battery level above a predetermined minimum battery level before automatically caching the selected content items;

determining whether a network connection for the mobile device satisfies a predetermined network connectivity level before automatically caching the selected content items; and

determining whether caching a content item from a synchronized content management system over a current network connection will result in a cellular network data fee before automatically caching a content item.

16. The non-transitory computer-readable storage medium of claim 15 , wherein metadata associated with a content item comprises a File Score value that is calculated based on one or more recency-related events selected from among:

a most recent occurrence of a user of the mobile device opening the content item using an application offered by the synchronized content management system,

a most recent occurrence of the user of the mobile device opening the content item using a third party application,

a most recent occurrence of the user of the mobile device sharing the content item via the mobile device,

a most recent occurrence of another user of the synchronized content management system sharing the content item with the user of the mobile device,

a most recent occurrence of the user of the mobile device sharing the content item via another electronic device,

a most recent occurrence of the user of the mobile device editing the content item, and

a most recent occurrence of the user of the mobile device accessing the content item via another electronic device.

17. A computer-implemented method comprising:

receiving, from a mobile device, an amount of free memory available for caching one or more content items from a collection of content items stored in a synchronized content management system,

generating, via at least one processor, a scaling factor for each of the content items in the collection based on the associated metadata; and

selecting a subset of content items from the collection based on the generated scaling factors and the amount of free space,

automatically caching the selected content items to the mobile device after conducting a mobile device stamina check, wherein the stamina check comprises:

determining whether the mobile device has a battery level above a predetermined minimum battery level before automatically caching the selected content items;

determining whether a network connection for the mobile device satisfies a predetermined network connectivity level before automatically caching the selected content items; and

determining whether caching a content item from a synchronized content management system over a current network connection will result in a cellular network data fee before automatically caching a content item.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
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 11, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069600/0149 →
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 →
SECURITY INTEREST Recorded Mar 24, 2014
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 032510/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2014
From: ANDERSSON, RASMUS; KLUESING, DANIEL
To: DROPBOX, INC.
Reel/Frame 032334/0878 →
Continuity (1)
Related Publication 20150193347A1 · Jul 9, 2015