Patent ID: 8127014
Filing Date: 2012-02-28
Classification: G06F

Abstract:
1. A method for providing quality of service to clients accessing a common resource, the method comprising: receiving an IO request from one of a plurality of clients executing as software entities on a host computer; determining whether a queue at the host computer is currently full, wherein the queue maintains entries for IO requests from the plurality of clients that have already been dispatched to and are pending at the common resource; if the queue is full, postponing transmission of the IO request until the queue has capacity to add an entry for the IO request by holding the IO request in a buffer specific to the client at the host computer; if the queue is not full, requesting transmission of the IO request to the common resource and adding an entry for the IO request to the queue, the queue being used by the host computer to determine when to request transmission of the IO request for the common resource; calculating an average latency for completion of IO requests transmitted from the host computer to the common resource, the average latency calculated using a client specific latency for the client based on a first amount of time the IO request was held in the buffer specific to the client while not having been transmitted to the common resource and a second amount of time the entry for the IO request resided in the queue while the IO request was transmitted to the common resource; and calculating an adjusted capacity size for the queue, the adjusted capacity size being based at least in part on the average latency; and setting the capacity size of the queue to the adjusted capacity size to control a number of IO requests that can be added to the queue from the buffer specific to the client.