Patent ID: 8458318

Claim:
A method for managing an amount of IO requests transmitted from a host computer to a storage system, the method comprising: periodically determining a current latency value of an IO request most recently removed from an issue queue maintained by a host bus adapter of the host computer in order to transmit IO requests from the host computer to the storage system, wherein the current latency value represents an amount of time spent in the issue queue by the IO request most recently removed from the issue queue; calculating an average latency value based on the current latency value and at least one previous average latency value calculated at a time that a previous IO request was removed from the issue queue; adjusting a size limit of the issue queue based in part on the average latency value, wherein a calculation used for adjusting the size limit and the calculation of the average latency value attempt to differentiate latencies caused by an amount of IO requests transmitted to the storage system from latency variations within the storage system during fulfillment of the IO requests; and upon receiving an IO request from one of a plurality of client applications running on the host computer, (i) determining whether a number of pending IO requests in the issue queue has reached the size limit, and (ii) transmitting the IO request to the issue queue if the number of pending IO request falls within the size limit.