IP Library › Granted Patent US 10,389,838
Granted Patent B2
US 10,389,838 · App. 15/399,184 · Granted Aug 20, 2019

Client-side predictive caching for content

Inventors: Lei Li (Kirkland, WA); Andrew Jason Ma (Redmond, WA); Gurpreet Singh Ahluwalia (Bellevue, WA); Abhishek Dubey (Bellevue, WA); Sachin Shah (Seattle, WA); Vijay Sen (Redmond, WA); Gregory Scott Benjamin (Seattle, WA); Prateek Rameshchandra Shah (Bellevue, WA); Cody Wayne Maxwell Powell (Seattle, WA); Meltem Celikel (Seattle, WA); Darryl Hudgin (Seattle, WA); James Marvin Freeman, II (Seattle, WA); Aaron M. Bromberg (Mountain View, CA); Bryant F. Herron-Patmon (Seattle, WA); Nush Karmacharya (Seattle, WA); Joshua B. Barnard (Seattle, WA); Peter Wei-Chih Chen (Everett, WA); Stephen A. Slotnick (Seattle, WA); Andrew J. Watts (Seattle, WA); Richard J. Winograd (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L67/2842G06F12/023G06F21/10H04L65/60H04L67/125H04L67/22H04L67/2857H04L67/42G06F12/0813G06F12/0862G06F12/121G06F2212/1024G06F2212/154G06F2212/455G06F2212/507G06F2212/6024G06F2221/0753
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,389,838
App. No.
15/399,184
Granted
Aug 20, 2019
Kind
B2
Abstract

Disclosed are various embodiments for client-side predictive caching of content to facilitate use of the content. If account is likely to commence use of a content item through a client, the client is configured to predictively cache the content item before the use is commenced. In doing so, the client may obtain an initial portion of the content item from another computing device. The client may then initialize various resources to facilitate use of the content item by the client. The client-side cache may be divided into multiple segments with different content selection criteria.

Claims (39)

1. A system, comprising:

a computing device; and

a caching system executable in the computing device, wherein when executed the caching system causes the computing device to at least:

determine a content item to be cached in a client cache including a plurality of cache segments, wherein the plurality of cache segments include at least one of: a first cache segment into which the content item is selected based at least in part on whether the content item is usable in association with an account via a current user interface rendered by a content access application, a second cache segment into which the content item is selected based at least in part on whether the content item has been used previously in association with the account, or a third cache segment into which the content item is selected based at least in part on whether the content item is predicted to be used in association with the account;

obtain an initial portion of the content item from at least one other computing device prior to receiving an indication that use of the content item is desired in association with the account;

obtain metadata associated with the content item from at least one other computing device prior to receiving the indication that the use of the content item is desired in association with the account; and

prepare the computing device for the use of the content item prior to receiving the indication that the use of the content item is desired in association with the account, wherein preparing the computing device for the use of the content item further comprises performing processing relative to the metadata.

2. The system of claim 1 , wherein the plurality of cache segments include at least two of: the first cache segment, the second cache segment, or the third cache segment.

3. The system of claim 1 , wherein when executed the caching system further causes the computing device to at least report at least one caching metric to at least one server, the at least one caching metric indicating at least one of: a respective size for individual ones of the plurality of cache segments or a respective time until use for the content item.

4. The system of claim 1 , wherein the metadata comprises a corresponding decryption key for the content item.

5. The system of claim 1 , wherein the metadata comprises a corresponding content manifest for the content item.

6. The system of claim 1 , wherein at least two of the plurality of cache segments are associated with corresponding ones of a plurality of different cache segment capacities.

7. A method, comprising:

determining, in a first client computing device, a content item to be cached in a client cache including a plurality of cache segments, wherein the plurality of cache segments include at least one of: a first cache segment into which the content item is selected based at least in part on whether the content item is usable in association with an account via a current user interface rendered by a content access application, a second cache segment into which the content item is selected based at least in part on whether the content item has been used previously in association with the account, or a third cache segment into which the content item is selected based at least in part on whether the content item is predicted to be used in association with the account; and

in response to determining the content item and before use of the content item via the first client computing device:

obtaining, in the first client computing device, an initial portion of the content item and metadata associated with the content item from a second client computing device; and

initializing resources of the first client computing device to facilitate use of the content item based at least in part on the initial portion of the content item, wherein initializing resources of the first client computing device to facilitate use of the content item further comprises performing processing relative to the metadata.

8. The method of claim 7 , further comprising, in response to determining the content item and before the use of the content item via the first client computing device, obtaining, in the first client computing device, a corresponding manifest for the content item from the second client computing device.

9. The method of claim 7 , wherein the first client computing device and the second client computing device are on a same local network.

10. The method of claim 7 , wherein the use of the content item is an instantaneous use.

11. The method of claim 7 , further comprising:

obtaining, in the first client computing device, a corresponding decryption key from another computing device; and

wherein initializing the resources further comprises initializing a decryption process of the first client computing device for decrypting the initial portion of the content item using the corresponding decryption key.

12. The method of claim 7 , wherein determining the content item is further based at least in part on a subscription status of the account and whether a discounted price for the content item is available for the account given the subscription status.

13. The method of claim 7 , wherein determining the content item is further based at least in part on whether the content item will become unavailable to the account within a predetermined time period.

14. The method of claim 7 , wherein determining the content item is further based at least in part on whether the content item will become available for access by the account within a predetermined time period.

15. The method of claim 7 , further comprising deallocating, in the first client computing device, resources associated with a previously cached content item in response to determining the content item to be cached.

16. The method of claim 7 , further comprising reporting, in the first client computing device, at least one caching metric to at least one server, the at least one caching metric indicating at least one of:

a first proportion of content item usage for which the initial portion of the content item has been obtained when the user explicitly indicates that the use of the content item is desired; or

a second proportion of content item usage for which the content item has been determined to be cached when the user explicitly indicates that the use of the content item is desired.

17. The method of claim 7 , further comprising:

adding, in the first client computing device, the content item to a queue in association with a priority; and

selecting, in the first client computing device, the content item from the queue based at least in part on the priority.

18. A non-transitory computer-readable medium embodying a program executable in at least one computing device, wherein when executed the program causes the at least one computing device to at least:

determine a content item to be cached in a client cache including a plurality of cache segments, wherein the plurality of cache segments include at least one of: a first cache segment into which the content item is selected based at least in part on whether the content item is usable in association with an account via a current user interface rendered by a content access application, a second cache segment into which the content item is selected based at least in part on whether the content item has been used previously in association with the account, or a third cache segment into which the content item is selected based at least in part on whether the content item is predicted to be used in association with the account;

obtain an initial portion of the content item and metadata associated with the content item for storage in the client cache prior to receiving an indication that use of the content item is desired in association with the account; and

prepare a particular computing device of the at least one computing device for the use of the content item prior to receiving the indication that the use of the content item is desired in association with the account, wherein preparing the particular computing device for the use of the content item further comprises performing processing relative to the metadata.

19. The non-transitory computer-readable medium of claim 18 , wherein the metadata comprises a manifest for the content item.

20. The non-transitory computer-readable medium of claim 18 , wherein the metadata comprises a decryption key for decrypting the content item.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: LI, LEI; MA, ANDREW JASON; AHLUWALIA, GURPREET SINGH; DUBEY, ABHISHEK; SHAH, SACHIN; SEN, VIJAY; BENJAMIN, GREGORY SCOTT; SHAH, PRATEEK RAMESHCHANDRA; POWELL, CODY WAYNE MAXWELL; CELIKEL, MELTEM; HUDGIN, DARRYL; FREEMAN, JAMES MARVIN, II; BROMBERG, AARON M.; HERRON-PATMON, BRYANT F.; KARMACHARYA, NUSH; BARNARD, JOSHUA B.; CHEN, PETER WEI-CHIH; SLOTNICK, STEPHEN A.; WATTS, ANDREW J.; WINOGRAD, RICHARD J.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 041554/0607 →
Continuity (2)
Continuation 14274121 · May 9, 2014
Related Publication 20170142219A1 · May 18, 2017
Cited By (2)
US 12,348,597 US 12,639,404