IP Library Granted Patent US 8,510,785
Granted Patent B2
US 8,510,785 · App. 12/581,447 · Granted Aug 13, 2013

Adaptive media caching for video on demand

Inventors: Brittain S. McKinley (Groton, MA); So C. Chen (Westford, MA); Brian J. Tarbox (Littleton, MA)
Assignee: Motorola Mobility LLC
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 8,510,785
App. No.
12/581,447
Granted
Aug 13, 2013
Kind
B2
Abstract

A method and on-demand computing system for hierarchical caching of content in an on-demand computing device. The method receives, at the on-demand computing device, a request to send media content to a playback device, where the media content is stored in a media library of a content server. The method retrieves the media content from a hierarchical cache for the on-demand computing device, and sends the media content to the playback device. The hierarchical cache includes a first cache, a second cache, and the content library, where the first cache has a length based on an age of the second cache.

Claims (91)

1. A method, comprising:

receiving over a network, at an on-demand computing device, a request to send media content to a playback device, wherein the media content is stored in a media library of a content server;

recording a buy time for the media content requested;

comparing the media content requested to a predictor list, wherein the predictor list includes content names that are candidates for promotion to a cache if a buy count for the media content requested reaches a threshold;

retrieving the media content from a hierarchical cache, the hierarchical cache including the predictor list, a cache and the content library,

wherein the window length of time during which the buy count may result in promotion to the cache is adjusted based on an age of the content with the oldest buy time in the cache; and

sending the media content over a network to the playback device.

2. The method of claim 1 , wherein the retrieving of the media content further comprises:

determining that the cache includes the media content; and

retrieving the media content from the cache.

3. The method of claim 2 , further comprising:

moving the media content in the cache to a head of the cache; and

updating the buy time associated with the media content in the cache,

wherein the cache is a least recently used cache.

4. The method of claim 1 , wherein the retrieving of the media content further comprises:

determining that the cache does not include the media content;

sending a request to retrieve the media content from the media library of the content server; and

receiving the media content from the content server.

5. The method of claim 4 , further comprising:

when the predictor list includes a list of the media content:

updating a buy count associated with the media content in the predictor list;

computing a popularity value associated with the media content in the predictor list; and

when the popularity value exceeds a promote threshold:

moving the media content in the predictor list first to a mover pool; and

promoting the media content in the mover pool to the cache.

6. The method of claim 4 , further comprising:

when the predictor list does not include the media content:

adding the media content to the predictor list.

7. The method of claim 1 , further comprising:

adjusting the buy count for the media content to reflect a percentage of the media content sent to the playback device.

8. The method of claim 1 , further comprising:

computing the window length of time during which the buy count may result in promotion to the cache;

computing an age for a tail of the predictor list; and

when the age for the tail of the predictor list exceeds the window length:

setting a buy count for the tail of the predictor list to zero; and

removing the tail of the predictor list.

9. The method of claim 8 , wherein computing the window length further comprises:

computing an age for the tail of the cache; and

dividing the age for the tail of the cache by a divider.

10. The method of claim 1 , further comprising:

when a size of the cache exceeds a size limit:

removing a tail of the cache; and

adjusting a used cache size for the cache,

wherein the cache is a least recently used cache.

11. An on-demand computing system, comprising:

a memory device resident in the on-demand computing system; and

a processor disposed in communication with the memory device, the processor configured to:

receive over a network a request to send media content to a playback device, wherein the media content is stored in a media library of a content server;

record a buy time for the media content requested;

compare the media content requested to a predictor list, wherein the predictor list includes content names that are candidates for promotion to a cache if a buy count for the media content requested reaches a threshold;

retrieve the media content from a hierarchical cache, the hierarchical cache including the predictor list, a cache and the content library,

wherein the window length of time during which the buy count may result in promotion to the cache is adjusted based on an age of the content with the oldest buy time in the cache; and

sending the media content over a network to the playback device.

12. The on-demand computing system of claim 11 , wherein to retrieve the media content, the processor is further configured to:

determine that the cache includes the media content; and

retrieve the media content from the cache.

13. The on-demand computing system of claim 12 , wherein the processor is further configured to:

move the media content in the cache to a head of the cache; and

update the buy time associated with the media content in the cache,

wherein the cache is a least recently used cache.

14. The on-demand computing system of claim 11 , wherein to retrieve the media content, the processor is further configured to:

determine that the cache does not include the media content;

send a request to retrieve the media content from the media library of the content server; and

receive the media content from the content server.

15. The on-demand computing system of claim 14 , wherein the processor is further configured to:

when the predictor list includes a list of the media content:

update a buy count associated with the media content in the predictor list;

compute a popularity value associated with the media content in the predictor list; and

when the popularity value exceeds a promote threshold:

move the media content in the predictor list first to a mover pool; and

promote the media content in the mover pool to the cache.

16. The on-demand computing system of claim 14 , wherein the processor is further configured to:

when the predictor list does not include the media content:

add the media content to the predictor list.

17. The on-demand computing system of claim 11 , wherein the processor is further configured to:

adjust the buy count for the media content to reflect a percentage of the media content sent to the playback device.

18. The on-demand computing system of claim 11 , wherein the processor is further configured to:

compute the window length of time during which the buy count may result in promotion to the cache;

compute an age for a tail of the predictor list; and

when the age for the tail of the predictor list exceeds the window length:

set a buy count for the tail of the predictor list to zero; and

remove the tail of the predictor list.

19. The on-demand computing system of claim 18 , wherein to compute the window length, the processor is further configured to:

compute an age for the tail of the cache; and

divide the age for the tail of the cache by a divider.

20. The on-demand computing system of claim 11 , wherein the processor is further configured to:

when a size of the cache exceeds a size limit:

remove a tail of the cache; and

adjust a used cache size for the cache,

wherein the cache is a least recently used cache.

21. A non-transitory computer-readable medium, comprising computer-executable instructions that, when executed on a computing device, perform the method of claim 1 .

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034469/0105 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2009
From: MCKINLEY, BRITTAIN S.; CHEN, SO C.; TARBOX, BRIAN J.
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 023500/0936 →
Continuity (1)
Related Publication 20110093905A1 · Apr 21, 2011