Patent ID: 8099565

Claim:
A method for providing access to a storage system, the method comprising: (a) receiving a plurality of requests from a plurality of applications for access to the storage system; (b) assigning each application to one of a plurality of queues; (c) calculating an initial quanta for each queue; (d) selecting a first queue to access the storage system so that a request from the first queue can be serviced by the storage system; (e) calculating a subsequent quanta for the first queue after the request from the first queue has been serviced by the storage system; (f) determining if the subsequent quanta for the first queue is greater than or less than a predetermined value; (g) selecting the first queue to access the storage system if the subsequent quanta for the first queue is greater than the predetermined value, so that a subsequent request from the first queue can be serviced by the storage system; and (h) selecting a second queue to access the storage system if the subsequent quanta for the first queue is less than the predetermined value, so that a request from the second queue can be serviced by the storage system, where allocating an available service time to each of the requests is controlled by a virtual input/output scheduler for coarse-grain allocation and a plurality of application-dependent schedulers for fine-grain allocation.