Predictive memory caching for media-on-demand systems
First Claim
1. A system for predictive memory caching for a media-on-demand network connected to a plurality of clients, comprising:
- (a) a network server for handling requests from multiple clients for streaming media data for media programs provided by said system, said server being provided with a memory buffer;
(b) a data storage device associated with said network server for storing media data for media programs provided by said system;
(c) a server scheduler for allocating a plurality of sections of the memory buffer for requests for a given media program, wherein each buffer section can store one of a series of data blocks of predetermined size into which the media program is divided;
(d) said server scheduler having first process program means which, upon receiving requests from one or more clients constituting a first group of network clients for the media program within a first predetermined time interval TI1, establishes a first streaming data process for sending the data blocks of the requested media program to the first group of clients, including process program means for checking for and, otherwise, for reading in a first data block of the requested media program from the data storage device in the server'"'"'s memory buffer and for sending it to the first group of clients;
(e) said server scheduler having second process program means for sending a current data block to a current group of clients, and for checking for and, otherwise, for reading in a next data block of the media program in the server'"'"'s memory buffer;
(f) said server scheduler having third process program means for checking if requests for the same media program have been made by another group of clients close enough in time to the first time interval TI1 that the first data block of the large data file remains in memory, and for establishing a streaming data process for such group and sending the first data block to such group;
(g) said server scheduler having fourth process program means for checking if the allocated sections of the memory buffer are full and, if so, for removing an oldest-in-time, lowest priority data block to free a section of the memory buffer;
wherein the operations of said second, third, and fourth process program means are performed iteratively until all data blocks of the requested large data file have been sent to the groups of clients for which the streaming data processes were established; and
wherein said network server employs a microprocessor having a capacity for addressing up to 4 gigabytes of random access memory for the memory buffer which is capable of handling multiple accesses by a multiplicity of clients for "Top 10" video-on-demand service during Prime Time hours.
1 Assignment
0 Petitions
Accused Products
Abstract
A media-on-demand system employs predictive memory caching for a media server and associated data storage device to meet requests from multiple clients for media programs stored on the data storage device. The system allocates a plurality of sections of the server memory buffer to accomodate requests for popular titles. When requests for a title are received from a first grouping of clients, the server scheduler establishes a first streaming data process for the requested media program by reading in the data blocks for the program and retaining the data blocks in memory for use by another group of clients if requested close enough in time to the first grouping such that the first data block of the media program is still retained in memory. Used data blocks are removed if no requests by another group of clients are made within a given time and the memory is full or if the title is of a low priority level. The data blocks for the requested media program are accessed from data storage only once and retained in the server memory buffer until all groups in the time period have been serviced, thereby allowing multiple requests for popular titles during Prime Time to be handled with a minimum of accesses to the data storage device and with a minimum of server hardware requirements and costs.
-
Citations
6 Claims
-
1. A system for predictive memory caching for a media-on-demand network connected to a plurality of clients, comprising:
-
(a) a network server for handling requests from multiple clients for streaming media data for media programs provided by said system, said server being provided with a memory buffer; (b) a data storage device associated with said network server for storing media data for media programs provided by said system; (c) a server scheduler for allocating a plurality of sections of the memory buffer for requests for a given media program, wherein each buffer section can store one of a series of data blocks of predetermined size into which the media program is divided; (d) said server scheduler having first process program means which, upon receiving requests from one or more clients constituting a first group of network clients for the media program within a first predetermined time interval TI1, establishes a first streaming data process for sending the data blocks of the requested media program to the first group of clients, including process program means for checking for and, otherwise, for reading in a first data block of the requested media program from the data storage device in the server'"'"'s memory buffer and for sending it to the first group of clients; (e) said server scheduler having second process program means for sending a current data block to a current group of clients, and for checking for and, otherwise, for reading in a next data block of the media program in the server'"'"'s memory buffer; (f) said server scheduler having third process program means for checking if requests for the same media program have been made by another group of clients close enough in time to the first time interval TI1 that the first data block of the large data file remains in memory, and for establishing a streaming data process for such group and sending the first data block to such group; (g) said server scheduler having fourth process program means for checking if the allocated sections of the memory buffer are full and, if so, for removing an oldest-in-time, lowest priority data block to free a section of the memory buffer; wherein the operations of said second, third, and fourth process program means are performed iteratively until all data blocks of the requested large data file have been sent to the groups of clients for which the streaming data processes were established; and wherein said network server employs a microprocessor having a capacity for addressing up to 4 gigabytes of random access memory for the memory buffer which is capable of handling multiple accesses by a multiplicity of clients for "Top 10" video-on-demand service during Prime Time hours.
-
-
2. A system for predictive memory caching for a media-on-demand network connected to a plurality of clients, comprising:
-
(a) a network server for handling requests from multiple clients for streaming media data for media programs provided by said system, said server being provided with a memory buffer; (b) a data storage device associated with said network server for storing media data for media programs provided by said system; (c) a server scheduler for allocating a plurality of sections of the memory buffer for requests for a given media program, wherein each buffer section can store one of a series of data blocks of predetermined size into which the media program is divided; (d) said server scheduler having first process program means which, upon receiving requests from one or more clients constituting a first group of network clients for the media program within a first predetermined time interval TI1, establishes a first streaming data process for sending the data blocks of the requested media program to the first group of clients, including process program means for checking for and, otherwise, for reading in a first data block of the requested media program from the data storage device in the server'"'"'s memory buffer and for sending it to the first group of clients; (e) said server scheduler having second process program means for sending a current data block to a current group of clients, and for checking for and, otherwise, for reading in a next data block of the media program in the server'"'"'s memory buffer; (f) said server scheduler having third process program means for checking if requests for the same media program have been made by another group of clients close enough in time to the first time interval TI1 that the first data block of the large data file remains in memory, and for establishing a streaming data process for such group and sending the first data block to such group; (g) said server scheduler having fourth process program means for checking if the allocated sections of the memory buffer are full and, if so, for removing an oldest-in-time, lowest priority data block to free a section of the memory buffer; wherein the operations of said second, third, and fourth process program means are performed iteratively until all data blocks of the requested large data file have been sent to the groups of clients for which the streaming data processes were established; wherein large data files that are requested repeatedly are assigned a priority ranking, and said server scheduler includes a fifth process program means for making a determination whether to retain or release a data block from the memory buffer based upon the priority ranking; and wherein said server scheduler employs a statistics list which logs the time and media program requested by each client and is used to generate the priority ranking. - View Dependent Claims (3, 4, 5, 6)
-
Specification