Patent ID: 8346995

Claim:
A method for balancing hardware usage, the method comprising: receiving an IO job associated with a client; estimating an amount of time a storage device will take to complete IO jobs associated with the client; determining that the estimated amount of time the storage device will take to complete IO jobs associated with the client exceeds an amount of time that was allocated to complete IO jobs from the client; and storing the IO job in a queue receiving an IO job associated with a second client; determining that the second client is associated with information that identifies an amount of time that the storage device can spend completing IO job requests from the second client; sending the IO job request associated with the second client to the storage device; determining that the amount of time that the storage device can spend completing IO job requests from the second client exceeds a predetermined maximum amount of time; and reducing the amount of time that the storage device can spend completing IO job requests from the second client to the predetermined maximum amount of time.