Method and system for self-tuning cache management
First Claim
1. A method for managing caching of objects in a cache, comprising:
- receiving a request (hit) for an object having a predetermined expiry time;
obtaining the object from a media source provided the object is not cached;
caching the object after receiving an Nth request for the object, N being greater than a hit threshold HT, provided there is space available in the cache;
adapting the object into an adapted object according to a destination profile;
determining a normalized hit threshold HT_TN for caching adapted objects, the normalized hit threshold HT_TN being computed by proportionately reducing the hit threshold HT according to an average size reduction of adapted objects with respect to the size of respective objects from which the adapted objects were adapted; and
caching the adapted object provided a number of requests for the adapted object exceeds the normalized hit threshold HT_TN.
6 Assignments
0 Petitions
Accused Products
Abstract
Web objects, such as media files are sent through an adaptation server which includes a transcoder for adapting forwarded objects according to profiles of the receiving destinations, and a cache memory for caching frequently requested objects, including their adapted versions. The probability of additional requests for the same object before the object expires, is assessed by tracking hits. Only objects having experienced hits in excess of a hit threshold are cached, the hit threshold being adaptively adjusted based on the capacity of the cache, and the space required to store cached media files. Expired objects are collected in a list, and may be periodically ejected from the cache, or when the cache is nearly full.
-
Citations
29 Claims
-
1. A method for managing caching of objects in a cache, comprising:
-
receiving a request (hit) for an object having a predetermined expiry time; obtaining the object from a media source provided the object is not cached; caching the object after receiving an Nth request for the object, N being greater than a hit threshold HT, provided there is space available in the cache; adapting the object into an adapted object according to a destination profile; determining a normalized hit threshold HT_TN for caching adapted objects, the normalized hit threshold HT_TN being computed by proportionately reducing the hit threshold HT according to an average size reduction of adapted objects with respect to the size of respective objects from which the adapted objects were adapted; and caching the adapted object provided a number of requests for the adapted object exceeds the normalized hit threshold HT_TN. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A media adaptation server computer, comprising:
-
a processor and a cache; and a self-tuning cache management module for managing the cache, comprising computer readable instructions stored in a memory causing the processor to; receive a request (hit) for an object having a predetermined expiry time; obtain the object from a media source provided the object is not cached; cache the object after receiving an Nth request for the object, N being greater than a hit threshold HT, provided there is space available in the cache; adapt an object into an adapted object according to a destination profile; determine a normalized hit threshold HT_TN for caching adapted objects, the normalized hit threshold HT_TN being computed by proportionately reducing the hit threshold HT according to an average size reduction of adapted objects with respect to the size of respective objects from which the adapted objects were adapted; and caching the adapted object provided a number of requests for the adapted object exceeds the normalized hit threshold HT_TN. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of caching one of a plurality of objects in a cache of predetermined capacity having a cache size threshold less than the predetermined capacity, comprising:
-
registering a descriptor of each of the plurality of objects in an object registry upon a first request for each object, the descriptor including a respective expiry time for said each object; storing a reference to each object in a list sorted according to the respective expiry time; determining an adaptive hit threshold (HT) for caching as a function of the sizes of objects already cached and the cache size threshold, and caching each object after said each object has received more than HT requests; removing the descriptor of each object from the object registry after the respective expiry time for said each object; removing each object from the cache after the respective expiry time for said each object; adapting an object into an adapted object according to a destination profile; determining an average bandwidth saving factor (ABS), the ABS being a function of the sizes of all cached adapted objects which were adapted according to the same destination profile and sizes of objects from which the adapted objects were adapted; computing a normalized hit threshold HT_TN as a function of the hit threshold HT and the ABS; and caching the adapted object provided a number of requests for the adapted object exceeds the normalized hit threshold HT_TN. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A media adaptation server comprising a self-tuning cache management sub system for processing requests for caching objects in a media cache, the system comprising:
-
a processor, and a non-transitory computer readable storage medium having computer readable instructions stored thereon for execution by the processor, forming; a caching control module for determining caching of objects, and operating in combination with data structures, the caching control module comprising; an object registry for identifying and registering objects; a hit buckets array of hit buckets for storing accumulated sizes of registered objects, and indexed by a hit number which corresponds to a number of requests (hits) each registered object has received; a hit threshold register for storing an adaptively determined hit threshold (HT) specifying a minimum number of hits after which an object is cached; a time-to-live (TTL) window list for storing expiry times of respective registered objects; a timer for determining an occurrence of times for removing registered objects from the object registry and from the cache; a terminal profiles database, and an adaptation engine for adapting registered objects into adapted objects for transmission to media clients, the adaptation for each media client being performed according to a terminal profile stored in the terminal profiles database; the caching control module further comprising readable instructions for execution by the processor for; determining a normalized hit threshold HT_TN for caching adapted objects, the normalized hit threshold HT_TN being computed by proportionately reducing the hit threshold HT according to an average size reduction of adapted objects with respect to the size of respective registered objects from which the adapted objects were adapted; and caching the adapted object provided a number of requests for the adapted object exceeds the normalized hit threshold HT_TN. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A self-tuning cache management system for processing requests for caching objects in a media cache, the system comprising:
-
a non-transitory computer readable storage medium having computer readable instructions stored thereon for execution by a processor, causing the processor to perform functions of; registering requested objects upon respective first requests for the requested objects in an object registry, including a time to live (TTL) for each requested object; accumulating an object size of each requested object in hit buckets according to a number of requests received for said each requested object; storing a hit threshold (HT) in a hit threshold register, the HT determining a minimum number of requests any of the requested object must have before the requested object is cached; listing the requested objects in a TTL window according to respective expiry times according to the TTL of said requested object; scanning the TTL window and removing requested objects from the object registry when the requested objects are expired, furthermore removing the requested objects from the cache provided the requested objects had been cached; adapting an object into an adapted object according to a destination profile;
determining a normalized hit threshold HT_TN for caching adapted objects, the normalized hit threshold HT_TN being computed by proportionately reducing the hit threshold HT according to an average size reduction of adapted objects with respect to the size of respective objects from which the adapted objects were adapted; andcaching the adapted object provided a number of requests for the adapted object exceeds the normalized hit threshold HT_TN.
-
Specification