IP Library Patent Application 11382109
Patent Application
App. No. 11/382,109

SYSTEMS AND METHODS FOR EFFICIENT CACHE MANAGEMENT IN STREAMING APPLICATIONS

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 None
App. No.
11/382,109
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 (35)

1 . Method for allocating cache memory for streaming, comprising:

(a) receiving a request from a user for streaming content from a content file, said request including a play position;

(b) 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;

(c) 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;

(d) 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;

(e) advancing said CFIH and CFTH synchronously during play; and

(f) 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:

(a) receiving from a content provider content of a content file;

(b) 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;

(c) determining from the request history the portion of the cache file that meets predetermined cache eviction criterion; and

(d) 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:

(a) computer instructions for receiving from a content provider content of a content file;

(b) 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;

(c) computer instructions for collecting a request history for streaming of the cache file;

(d) computer instructions for determining from the request history the portion of the cache file that meets predetermined cache eviction criterion; and

(e) 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.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NUMBER: 11328109 PREVIOUSLY RECORDED ON REEL 019140 FRAME 0679. ASSIGNOR(S) HEREBY CONFIRMS THE GULFSTREAM MEDIA CORPORATION. Recorded Aug 14, 2007
From: GULFSTREAM MEDIA CORPORATION
To: SILICON VALLEY BANK, AS AGENT; GOLD HILL VENTURE LENDING 03, L.P.
Reel/Frame 019695/0277 →
AFFIDAVIT REGARDING LOAN DEFAULT AND TRANSFER OF INTELLECTUAL PROPERTY Recorded May 31, 2007
From: SILICON VALLEY BANK; GOLD HILL VENTURE LENDING 03, L.P.
To: GULFSTREAM MEDIA CORPORATION
Reel/Frame 019353/0835 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NUMBER 11328109 PREVIOUSLY RECORDED ON REEL 018207 FRAME 0963. ASSIGNOR(S) HEREBY CONFIRMS THE STARBAK COMMUNICATIONS, INC.. Recorded Nov 27, 2006
From: STARBAK COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 018554/0729 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NUMBER 11328109 PREVIOUSLY RECORDED ON REEL 018194 FRAME 0667. ASSIGNOR(S) HEREBY CONFIRMS THE STARBAK COMMUNICATIONS, INC.. Recorded Nov 27, 2006
From: STARBAK COMMUNICATIONS, INC.
To: SILICON VALLEY BANK; GOLD HILL VENTURE LENDING 03, L.P.
Reel/Frame 018554/0751 →