Systems and methods for efficient cache management in streaming applications
Abstract
Systems and methods for streaming of multimedia files over a network are described. A streaming delivery accelerator (SDA) caches content from a content provider and streams the cached content to a user. Cached content is incrementally added to the cache memory, and the SDA is disconnected from the content provider when sufficient content for a predetermined time of play has been received. The caching process can be iterative, with only content not previously retained in the cache requested from the content provider. A method for cache eviction of content no longer of interest to users is also described.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . Method for allocating cache memory for streaming, comprising:
receiving a request from a user for streaming content from a content file, said request including a play position; checking if the content is in cache memory, and if the content is not in memory, caching the content at least at the play position from a content provider; determining a cache fill initiate horizon (CFIH), said CFIH defining a cache memory content sufficient to begin streaming to the user, and caching content from the content provider that is missing between the play position and the CFIH; defining a cache fill terminate horizon (CFTH), said CFTH defining additional cache memory content sufficient for maintaining a content stream of predetermined duration after streaming to the user has begun; advancing said CFIH and CFTH synchronously during play; and caching content from the content provider that is missing between the CFIH and the CFTH.
2 . The method of claim 1 , wherein said setting of the CFIH and the CFTH depends on a transmission rate of the streamed content to the user.
3 . The method of claim 1 , wherein said setting of the CFIH and the CFTH depends on a header duration information of the content file.
4 . The method of claim 1 , wherein said setting of the CFIH and the CFTH depends on a bit rate of the content file.
5 . The method of claim 1 , wherein said setting of the CFIH and the CFTH depends on a time for establishing a connection to the content provider.
6 . The method of claim 1 , further including stopping a position of the CFTH when reaching an end of file and disconnecting from the content provider.
7 . The method of claim 1 , further including disconnecting from the content provider when the content between the play position and the CFTH is in the cache memory.
8 . The method of claim 1 , further including:
upon detection of an interruption in streaming the content to the user, determine if the cache memory contains more than a predetermined fraction of the content file; and if the cache memory contains more than the predetermined fraction of the content file, finish caching the remaining fraction of the content file from the content provider; and if the cache memory contains less than the predetermined fraction of the content file, purge the cached content from cache memory.
9 . Method of managing cache memory for streaming, comprising:
receiving from a content provider content of a content file; caching said content and storing at least a portion of said content as a cache file in a cache memory for streaming; collecting a request history for streaming of the cache file; determining from the request history the portion of the cache file that meets predetermined cache eviction criterion; and evicting from the cache memory the determined portion of the cache file that meets the cache eviction criterion.
10 . The method of claim 9 , wherein the cache eviction criterion includes a fixed time period, an elapsed time since a previous request, a frequency of previous requests, and a quality metric.
11 . The method of claim 9 , wherein the cache eviction criterion includes a location of the cached content within a cache file.
12 . The method of claim 11 , wherein the location includes at least one of a central and a trailing segment of the cache file.
13 . The method of claim 9 , further including storing said content in the cache file as payload data and as system data, and evicting from the cache memory the payload data of the determined portion of the cache file before evicting the system data of the determined portions.
14 . The method of claim 13 , wherein the system data include metadata.
15 . A computer-readable medium containing instructions for causing a computer to manage a cache memory for streaming, including:
computer instructions for receiving from a content provider content of a content file; computer instructions for caching said content and storing at least a portion of said content as a cache file in a cache memory for streaming; computer instructions for collecting a request history for streaming of the cache file; computer instructions for determining from the request history the portion of the cache file that meets predetermined cache eviction criterion; and computer instructions for evicting from the cache memory the determined portion of the cache file that meets the cache eviction criterion.
16 . The computer-readable medium of claim 15 , wherein the cache eviction criterion includes a fixed time period, an elapsed time since a previous request, a frequency of previous requests, and a quality metric.
17 . The computer-readable medium of claim 15 , wherein the cache eviction criterion includes a location of the cached content within a cache file.
18 . The computer-readable medium of claim 17 , wherein the location includes at least one of a central and a trailing segment of the cache file.
19 . The computer-readable medium of claim 15 , further including storing said content in the cache file as payload data and as system data, and evicting from the cache memory the payload data of the determined portion of the cache file before evicting the system data of the determined portions.
20 . The computer-readable medium of claim 19 , wherein the system data include metadata.Join the waitlist — get patent alerts
Track US2002169926A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.