Method and apparatus for selective buffering of pages to provide continuous media data to multiple users
First Claim
1. A method of retrieving portions of a continuous media data file from a disk to a buffer on demand, said continuous media data file comprising pages of data and being characterized by a transfer rate, the method comprising the steps of:
- receiving a request for the continuous media data file;
pinning in the buffer a page currently referenced by the request; and
,pinning in the buffer simultaneously the next page following the page currently referenced by the request, such that data are made available in the buffer for transfer at the transfer rate.
5 Assignments
0 Petitions
Accused Products
Abstract
Buffer space and disk bandwidth resources in a continuous media server are continuously re-allocated in order to optimize the number of continuous media requests which may be concurrently serviced at guaranteed transfer rates using on demand paging. Disk scheduling is provided to ensure that whenever an admitted request references a page of data, the page is available in a buffer for transfer to a client. Data for continuous media data files are stored on disk or held in the buffer to eliminate disk bandwidth limitations associated with concurrently servicing any number or combination of requests, provided buffer space is sufficient. Multiple requests for continuous media data files are selectively included in groups for servicing in order to provide that buffer and disk bandwidth requirements are maintained at a minimum and within available resource capabilities.
-
Citations
49 Claims
-
1. A method of retrieving portions of a continuous media data file from a disk to a buffer on demand, said continuous media data file comprising pages of data and being characterized by a transfer rate, the method comprising the steps of:
-
receiving a request for the continuous media data file; pinning in the buffer a page currently referenced by the request; and
,pinning in the buffer simultaneously the next page following the page currently referenced by the request, such that data are made available in the buffer for transfer at the transfer rate. - View Dependent Claims (2, 3, 4, 6, 7, 8, 9)
-
-
5. A method of retrieving data from a server, said server comprising a disk connected to a buffer by a transmission line, wherein the disk contains a continuous media data file, said continuous media data file comprising pages of data and being characterized by a transfer rate, the method comprising the steps of:
-
receiving a request for the continuous media data file; determining whether the next page of the continuous media data file that the request will reference is pinned in the buffer; paging the next page from the disk to the buffer if the next page is not pinned in the buffer; and
,pinning the next page in the buffer simultaneously with the page currently referenced such that the next page is available for transfer when the request references the next page.
-
-
10. A method for servicing multiple requests for a continuous media data file at a server, wherein the server comprises a disk and buffer connected by a transmission line, said continuous media data file comprising pages of data and being characterized by a transfer rate, the method comprising the steps of:
-
receiving the requests for the continuous media data file; pinning in the buffer pages currently referenced by the requests, respectively; pinning in the buffer simultaneously the next pages following the currently referenced pages of the requests, respectively, such that data are made available in the buffer for transfer at the transfer rate and such that the pages of data in the buffer can be utilized for servicing more than one of the requests simultaneously; determining whether a new request Ri arrived at the server after a previously received request Ri-1 at less than or equal to a first time interval, said first time interval being equal to twice the time required for a request to consume a page of the continuous media data file from the buffer, said request Ri-1 being included in a previous group, said previous group including requests, each of which arrived at the server at less than or equal to the first time interval after a preceding request included in the previous group; constructing a new group with the new request Ri if Ri did not arrive after the request Ri-1 at a time less than or equal to the first time interval, the buffer contains sufficient space for the creation of the new group including the new request Ri and sufficient bandwidth is available on the transmission line for transferring pages of data to the buffer for servicing the new request Ri in the newly constructed group; and
,joining Ri to the previous group if the new request Ri arrived after the request Ri-1 at a time less than or equal to the first time interval and the buffer contains sufficient space for servicing the new request Ri as part of the previous group. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of retrieving data from a server, said server comprising a disk connected to a buffer by a transmission line, wherein the disk contains a continuous media data file, said continuous media data file comprising pages of data and being characterized by a transfer rate, the method comprising the steps of:
-
receiving requests for the continuous media data file; pinning in the buffer pages currently referenced by the requests, respectively; pinning in the buffer simultaneously the next pages following the currently referenced pages of the requests, respectively, such that data are made available in the buffer for transfer at the transfer rate and such that the pages of data in the buffer can be utilized for servicing more than one of the requests simultaneously; placing the requests in groups for servicing according to time of arrival of the requests at the server; selecting a pinning duration for pages pinned by the earliest request in an active group such that the earliest request in an active group pins the pages in the buffer for all other requests in the active group; and
,continuously re-allocating the use of space in the buffer and units of disk bandwidth on the transmission line for servicing the requests such that the number of disk accesses for a page of the continuous media data file is maintained in steady state at most equal to one less than the total number of disk bandwidth units on the transmission line. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A system for providing continuous media services comprising:
-
a disk containing a continuous media data file, said continuous media data file comprising pages of data and being characterized by a transfer rate; a buffer connected by a transmission line to said disk for storing pages of data; a processor connected to the disk and the buffer, wherein said processor performs the operations of receiving a request for the continuous media data file; and
,retrieving portions of the continuous media data file for on demand servicing of the request, wherein a page currently referenced by the request and the next page following the currently referenced page are simultaneously pinned in the buffer to provide that data are made available in the buffer for transfer at the transfer rate. - View Dependent Claims (37, 38, 39, 40, 41)
-
-
42. A system for providing continuous media services comprising:
-
a disk containing a continuous media data file, said continuous media data file comprising pages of data and being characterized by a transfer rate; a buffer connected by a transmission line to said disk for storing pages of data; a processor connected to the disk and the buffer, wherein the processor performs the operations of; receiving a request for the continuous media data file; pinning in the buffer a page currently referenced and the next page following the currently referenced page of the request such that data are made available in the buffer for transfer at the transfer rate and such that the pages of data in the buffer can be utilized for servicing more than one of the requests simultaneously; determining whether a new request Ri arrived at the server after a previously received request Ri-1 at less than or equal to a first time interval, said first time interval being equal to twice the time required for a request to consume a page of the continuous media data file from the buffer, said request Ri-1 being included in a previous group, said previous group including requests, each of which arrived at the server at less than or equal to the first time interval after a preceding request in the previous group arrived at the server; constructing a new group with the new request Ri if Ri did not arrive after the request Ri-1 at a time less than or equal to the first time interval, the buffer contains sufficient space for the creation of the new group including the new request Ri and sufficient bandwidth is available on the transmission line for transferring pages of data to the buffer for servicing the new request Ri in the newly constructed group; and
,joining Ri to the previous group if the new request Ri arrived after the request Ri-1 at a time less than or equal to the first time interval and the buffer contains sufficient space for servicing the new request Ri as part of the previous group. - View Dependent Claims (43, 44, 45)
-
-
46. A system for providing continuous media service comprising:
-
a disk containing a continuous media data file, said continuous media data file comprising pages of data and being characterized by a transfer rate; a buffer connected by a transmission line to said disk for storing pages of data; a processor connected to the disk and the buffer, wherein the processor performs the operations of; receiving requests for the continuous media data file; retrieving portions of the continuous media data file for on demand servicing of the request, wherein a page currently referenced by the request and the next page following the currently referenced page are simultaneously pinned in the buffer to provide that data are made available in the buffer for transfer at the transfer rate; placing the requests in groups for servicing according to time of arrival of the requests at the server; selecting a pinning duration for pages pinned by the earliest request in an active group such that the earliest request in an active group pins the pages in the buffer for all other requests in the active group; and
,continuously re-allocating the use of space in the buffer and units of disk bandwidth on the transmission line for servicing the requests such that the number of disk accesses for a page of the continuous media data file is maintained in steady state at most equal to one less than the total number of disk bandwidth units on the transmission line. - View Dependent Claims (47, 48, 49)
-
Specification