US5544327A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied
Assignee: Cisco Technology Inc
•
Filing: 1994-07-26
•
Granted: 1996-08-06
•
Expires: 2014-07-26
Abstract
Abstract A video server is provided with buffer manager which balances the loads on the various "movie storage" elements of a video server by preferentially buffering streams on highly loaded storage elements. The allocation of buffer takes place only when the storage element load increases due to the arrival of a new request or when buffer becomes available due to the pausing or stopping of an old request.
Inventors
- 👤 Asit Dan
- 👤 Dinkar Sitaram
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-26 12:53
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0628; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674; H; H04; H04N; H04N7/00; H04N7/16; H04N7/173; H04N7/17309; H04N7/17336
Claims Analysis
Total Claims: 4
Claim 1
Independent Claim
251 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the steps of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; creating a list of streams being served from each of the disks, ordered by the buffer requirement of each of the streams; determining when to balance the load across the disks; allocating the buffer to the streams on a most heavily loaded one of the disks so as to serve the streams from the buffer, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied; and retaining blocks of the immediately preceding stream in the buffer allocated to its following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream; updating the list when any of starting, stopping, pausing and resuming of a video occurs; and responsive to the updating, identifying the most heavily loaded one of the disks after the updating and reallocating the buffer to the streams being served from the most heavily loaded disk, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied.
Claim 2
Independent Claim
251 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the steps of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; creating a list of streams being served from each of the disks, ordered by the buffer requirement of each of the streams; determining when to balance the load across the disks; allocating the buffer to the streams on a most heavily loaded one of the disks so as to serve the streams from the buffer, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied; and retaining blocks of the immediately preceding stream in the buffer allocated to its following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream; updating the list when any of starting, stopping, pausing and resuming of a video occurs; and responsive to the updating, identifying the most heavily loaded one of the disks after the updating and reallocating the buffer to the streams being served from the most heavily loaded disk, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied.
Claim 3
Independent Claim
245 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from storage elements, comprising the steps of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; creating a list of streams being served from each of the storage elements, ordered by the buffer requirement of each of the streams; allocating the buffer to the streams on a most heavily loaded one of the storage elements so as to serve the streams from the buffer, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied; retaining blocks of the immediately preceding stream in the buffer allocated to its following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream; updating the list when any of starting, stopping, pausing and resuming of a video occurs; responsive to the updating, identifying the most heavily loaded one of the storage elements after the updating and reallocating the buffer to the streams being served from the most heavily loaded storage element, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied.
Claim 4
Independent Claim
245 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from storage elements, comprising the steps of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; creating a list of streams being served from each of the storage elements, ordered by the buffer requirement of each of the streams; allocating the buffer to the streams on a most heavily loaded one of the storage elements so as to serve the streams from the buffer, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied; retaining blocks of the immediately preceding stream in the buffer allocated to its following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream; updating the list when any of starting, stopping, pausing and resuming of a video occurs; responsive to the updating, identifying the most heavily loaded one of the storage elements after the updating and reallocating the buffer to the streams being served from the most heavily loaded storage element, starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied.
References Cited (Backward Citations)
US4647986A
Cited
US4816905A
Cited
US5179662A
Cited
US5451982A
Cited
US5168353A
Cited
US5442749A
Cited
US5410343A
Cited
US5341474A
Cited
US5371532A
Cited
US5473744A
Cited
US5481543A
Cited
US5442390A
Cited
US5487035A
Cited
US5506615A
Cited
US5453779A
Cited
US5461415A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-08-06 | 2000-02-05 | 2000-08-06 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-08-06 | 2004-02-05 | 2004-08-06 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-08-06 | 2008-02-05 | 2008-08-06 | $7700.00 | Window Closed / Lapsed |