Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
First Claim
1. A method for accessing data of one or more streams in a disk array of at least one disk comprising the steps of:
- (a) enqueuing one or more command descriptors for performing I/O transactions, corresponding to each request that issued during a current cycle i, into an inactive periodic queue, during said cycle i,(b) delaying performing said I/O transactions of said command descriptors in said inactive periodic queue until a subsequent cycle i+1,(c) at a beginning of said cycle i+1, placing said command descriptors in said inactive periodic queue into an active periodic queue,wherein during each cycle, I/O transactions are performed for each command descriptor in said active periodic queue, but not performed for command descriptors in said inactive periodic queue.
4 Assignments
0 Petitions
Accused Products
Abstract
A method is disclosed for interfacing a video storage system, such as a disk array, and a video stream application executing on a computer network or stand-alone system. The interface provides a method for storing video stream data by allocating storage space in units of stripes and for accessing the data in units of fixed length segments, wherein each stripe includes one fixed length segment from each disk of the array. The interface also queues submitted I/O transaction requests so that I/O transactions requested on a current I/O cycle i are not performed until the next I/O cycle i+1. The I/O transactions thus queued are performed in an order which permits a maximum number of I/O transactions to be performed each I/O cycle, regardless of the order in which they were submitted. In addition, the interface also queues the submitted I/O transaction requests so that the completion of an I/O transaction on a current I/O cycle i is not returned until the next I/O cycle i+1. The completions of the I/O transactions thus queued are returned in the order they were submitted regardless of the order in which they were performed. Furthermore, the interface provides a state machine which controls the amount of data accessed each I/O cycle for a corresponding stream. The state machine permits no more than a particular allotted amount of data to be accessed each I/O cycle, wherein the allotted amount of data is selected according to the bandwidth requirement of the corresponding stream.
-
Citations
28 Claims
-
1. A method for accessing data of one or more streams in a disk array of at least one disk comprising the steps of:
-
(a) enqueuing one or more command descriptors for performing I/O transactions, corresponding to each request that issued during a current cycle i, into an inactive periodic queue, during said cycle i, (b) delaying performing said I/O transactions of said command descriptors in said inactive periodic queue until a subsequent cycle i+1, (c) at a beginning of said cycle i+1, placing said command descriptors in said inactive periodic queue into an active periodic queue, wherein during each cycle, I/O transactions are performed for each command descriptor in said active periodic queue, but not performed for command descriptors in said inactive periodic queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for performing I/O transactions on stream oriented data comprising the steps of:
-
(a) for each request to perform an I/O transaction on a stream issued during a current cycle i, enqueuing an I/O descriptor into a submit pending queue, (b) at the beginning of the next cycle i+1, dequeuing each of said I/O descriptors from said submit pending queue and enqueuing said dequeued I/O descriptors into a submitted I/O transaction queue associated with said stream on which said I/O transaction of said I/O descriptor is to be performed, said I/O descriptors being enqueued into each associated submitted I/O transaction queue in the same order in which said requests to perform said corresponding I/O transactions are requested, (c) performing said I/O transactions in an order that is independent of said order in which said I/O requests corresponding to said I/O transactions are stored in said submitted I/O transaction queues, and (d) maintaining continuity of said streams by retrieving said I/O descriptors from said respective submitted I/O transaction queue in the same order in which said I/O transactions are requested and independently of a specific order in which said I/O transactions corresponding to said I/O descriptors were performed. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification