Fault tolerant architectures for continuous media servers
First Claim
1. A method for servicing one or more requests for a continuous media clip stored on a plurality of data storage mediums at a desired playback rate, said method comprising the steps of:
- reserving available bandwidth for each of said requests on a particular order;
maintaining a reserved list of all said requests having reserved bandwidth, said requests on said reserved list represented as reserved requests;
maintaining a service list corresponding to each of said plurality of data storage mediums each of said service lists listing a number of said reserved requests having a unit of data on said service list'"'"'s corresponding data storage medium, said reserved requests on each of said service lists representing a request in service, said number of requests in service limited such that the total bandwidth necessary for said requests in service does not exceed the maximum bandwidth for servicing a request for a continuous media clip at said desired playback rate, minus an amount of contingency bandwidth;
determining from each of said service lists if excess bandwidth is available on a corresponding data storage medium to service a next reserve request on each of said service lists;
moving in response to said determining step, said next reserved request from said reserved list to a service list with excess bandwidth and for which a unit of data of said request resides on said corresponding data storage medium;
retrieving at least one unit of data for each request service from each data storage medium;
determining whether any of said units of data are inaccessible due to a failure of one of said data storage mediums;
reconstructing said inaccessible units of data; and
transmitting said retrieved and reconstructed units of data at said playback rate.
5 Assignments
0 Petitions
Accused Products
Abstract
A continuous media server that provides support for the storage and retrieval of continuous media data at guaranteed rates using one of two fault-tolerant approaches that rely on admission control in order to meet rate guarantees in the event of a failure of the data storage medium that renders part of the continuous media inaccessible. In the first approach, a declustered parity storage scheme is used to uniformly distribute the additional load caused by a disk failure, uniformly across the disks. Contingency bandwidth for a certain number of clips is reserved on each disk in order to retrieve the additional blocks. In the second approach, data blocks in a parity group are prefetched and thus in the event of a disk failure only one additional parity block is retrieved for every data block to be reconstructed. While the second approach generates less additional load in the event of a failure, it has higher buffer requirements. For the second approach, parity blocks can either be stored on a separate parity disk, or distributed among the disks with contingency bandwidth reserved on each disk.
36 Citations
15 Claims
-
1. A method for servicing one or more requests for a continuous media clip stored on a plurality of data storage mediums at a desired playback rate, said method comprising the steps of:
-
reserving available bandwidth for each of said requests on a particular order; maintaining a reserved list of all said requests having reserved bandwidth, said requests on said reserved list represented as reserved requests; maintaining a service list corresponding to each of said plurality of data storage mediums each of said service lists listing a number of said reserved requests having a unit of data on said service list'"'"'s corresponding data storage medium, said reserved requests on each of said service lists representing a request in service, said number of requests in service limited such that the total bandwidth necessary for said requests in service does not exceed the maximum bandwidth for servicing a request for a continuous media clip at said desired playback rate, minus an amount of contingency bandwidth; determining from each of said service lists if excess bandwidth is available on a corresponding data storage medium to service a next reserve request on each of said service lists; moving in response to said determining step, said next reserved request from said reserved list to a service list with excess bandwidth and for which a unit of data of said request resides on said corresponding data storage medium; retrieving at least one unit of data for each request service from each data storage medium; determining whether any of said units of data are inaccessible due to a failure of one of said data storage mediums; reconstructing said inaccessible units of data; and transmitting said retrieved and reconstructed units of data at said playback rate. - View Dependent Claims (2, 3, 4, 5, 6)
-
- 7. A method of storing successive data blocks of a file on a plurality of data storage mediums, said plurality of data storage mediums comprising d data storage mediums grouped into clusters of p-1 data storage mediums, wherein said successive data blocks of the file are sequentially distributed among said plurality of data storage mediums in a round robin fashion, p-1 consecutive data blocks within a cluster forming a data group, each data group associated with a parity block computed from the data group, parity blocks associated with data groups within a particular cluster being uniformly distributed among a subset of data storage mediums, said subset of storage mediums excluding said particular cluster.
-
9. A continuous media server for servicing at a particular playback rate, a request for a multimedia clip from a set of at least one stored multimedia clip comprising:
-
data storage memory for storing said at least one stored multimedia clip and parity data; a storage manager for executing and managing a layout of said at least one stored multimedia clip and said parity data on said data storage memory, said layout including a substantially uniform distribution of said parity data on said data storage memory in substantial absence of a designated parity storage memory; an admission controller for determining whether said request can be serviced; and a retriever responsive to said admission controller means for retrieving said serviceable, multimedia clip from said data storage memory. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification