Method for operating a disk storage system which stores video data so as to maintain the continuity of a plurality of video streams
First Claim
1. A method for operating an array of Nd storage units which is organized into Ns sub-arrays of Na storage units,wherein data from one or more fries is striped across the entire array, with one segment in each stripe being allocated to each storage unit,said method comprising the steps of defining a sequence of I/O cycles having a duration determined according to the equation Ns Na S/Wbase, where Wbase is a bit rate, and scheduling I/O transactions by determining which segments are to be fetched or stored within said I/O cycles to maintain the continuity of a plurality of data streams, the I/O cycles of each sub-array being offset from that of an adjacent sub-array by (1/Ns) of an I/O cycle,said streams having production or consumption cycles having a duration of Na S/Wbase and produce segments to be written into or consume segments from the Ns sub-arrays in a cyclic pattern,wherein the consumption of segments fetched from a sub-array in a particular I/O cycle is restricted to begin no earlier than the beginning of the next I/O cycle for the sub-array and the production of segments to be written into a sub-array in a particular I/O cycle is restricted to end no later than the end of the previous I/O cycle for the sub-array.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for increasing the storage capacity of a video server which utilizes an array of disks is disclosed. The server is operated so that the continuity of a plurality of bit streams is maintained. The inventive method has advantageous characteristics with respect to storage capacity, streaming capacity, start-up latency of new streams, amount of required buffer capacity, scalability, reliability and multiple bit rates.
132 Citations
31 Claims
-
1. A method for operating an array of Nd storage units which is organized into Ns sub-arrays of Na storage units,
wherein data from one or more fries is striped across the entire array, with one segment in each stripe being allocated to each storage unit, said method comprising the steps of defining a sequence of I/O cycles having a duration determined according to the equation Ns Na S/Wbase, where Wbase is a bit rate, and scheduling I/O transactions by determining which segments are to be fetched or stored within said I/O cycles to maintain the continuity of a plurality of data streams, the I/O cycles of each sub-array being offset from that of an adjacent sub-array by (1/Ns) of an I/O cycle, said streams having production or consumption cycles having a duration of Na S/Wbase and produce segments to be written into or consume segments from the Ns sub-arrays in a cyclic pattern, wherein the consumption of segments fetched from a sub-array in a particular I/O cycle is restricted to begin no earlier than the beginning of the next I/O cycle for the sub-array and the production of segments to be written into a sub-array in a particular I/O cycle is restricted to end no later than the end of the previous I/O cycle for the sub-array.
-
2. A method for operating an array of Nd storage units
wherein data from each of a plurality of files is stored in the storage units in segments of S bits and striped across N*d storage units where N*d ≦ - Nd and where N*d is different for different files,
said method comprising the steps of defining a sequence of I/O cycles having a duration determined according to the equation Nc S/Wbase, where Nc is an integer and Wbase is a base rate of bits per second, and scheduling I/O transactions by determining which segments are to be stored in or fetched from said storage units in said I/O cycles so as to maintain the continuity of a plurality of streams, a stream having a bit rate Wbase having Nc I/O transactions in said storage units in each cycle, a stream having a bit rate larger than Wbase having more than Nc I/O transactions in said storage units in each cycle and a stream having a bit rate smaller than Wbase having less than Nc I/O transactions in each cycle.
- Nd and where N*d is different for different files,
-
3. A method for operating an array of Nd storage units
wherein data from a plurality of files is stored in said storage units in segments of S bits, wherein N*d consecutive segments from a file are allocated to N*d of said storage units where N*d < - Nd,
said method comprising the steps of defining a sequence of I/O cycles having a duration determined by the equation Nd '"'"'S/Wbase, Nd '"'"'<
Nd and scheduling I/O transactions by determining which segments are to be fetched or stored within said I/O cycles to maintain the continuity of a plurality of data stream,a stream with a bit rate Wbase having Nd '"'"' I/O transactions in each I/O cycle. - View Dependent Claims (4)
- Nd,
-
5. A method for operating an array of Nd storage units,
wherein data from a plurality of files are stored in said storage units in segments of S bits, wherein Nd consecutive segments from a file are allocated so that there is one segment on each of the Nd storage units, said method comprising the steps of defining a sequence of I/O cycles having a duration determined according to the equation Nd '"'"'S/Wbase, Nd '"'"'< - Nd, wherein Wbase is a base rate of bits per second and scheduling I/O transactions by determining which segments are to be fetched or stored within said I/O cycles to maintain the continuity of a plurality of data streams,
during one I/O transaction, a stream with a bit rate of Wbase fetching from or storing to each of Nd '"'"' storage units one segment in each I/O cycle, and during one I/O transaction, a stream with a bit rate other than Wbase fetching or storing fewer or greater than Nd '"'"' segments in each I/O cycle. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
- Nd, wherein Wbase is a base rate of bits per second and scheduling I/O transactions by determining which segments are to be fetched or stored within said I/O cycles to maintain the continuity of a plurality of data streams,
-
17. A method for operating an array of Nd storage units,
wherein said storage traits are organized into Ns s sub-arrays of Na storage units each, wherein data from one or more files are organized into substripes comprised of Na consecutive segments of S bits, wherein said substripes are allocated to said sub-arrays so that each substripe is allocated to one sub-array, said method comprising the steps of: -
defining a sequence of I/O cycles having a duration determined according to the equation Na S/Wbase, wherein Wbase is a base rate of bits per second and scheduling I/O transactions by determining which segments are to be fetched or stored within said I/O cycles to maintain the continuity of a plurality of data streams, a stream with a bit rate of Wbase having Na I/O transactions in each I/O cycle such that one substripe of Na segments is fetched from or written into one sub-array. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
Specification