Patent ID: 7774491
Filing Date: 2010-08-10
Classification: H04L

Abstract:
1. A non-transitory computer storage medium having computer readable instructions stored thereon that, when executed by a computer, implement a method of utilizing informed throttling to guarantee quality of service to a plurality of clients, the method comprising: for each client comparing a performance level received by the client to a corresponding contracted service level; based on the compared performance level, determining if the client qualifies as a victim whose received performance level is less than the corresponding contracted service level, wherein determining if the client qualifies as a victim further comprises: classifying the client into one of a plurality of heuristic-dependent categories, including a QoS_Met category indicative that the client's demand does not exceed the corresponding contracted service level, and that the client's demand is properly met, a QoS_Fail category indicative that the client's demand does not exceed the corresponding contracted service level, and that the client's demand is improperly not met, a QoS_Exempt category indicative that the client's demand exceeds the corresponding contracted service level, and that the client's demand is properly not met, and a QoS_Excess category indicative that the client's demand exceeds the corresponding contracted service level, and that the client's demand is properly met; each of the heuristic-dependent categories dependent upon a demand by the client, a preexisting specification of a quality of service specified by the client, and a current performance experienced by the client; and computing, for each of a plurality of QoS groups having a common service level agreement (SLA): a delivery summary of an observed average service time divided by an agreed upon maximum service time; a load summary of an observed number of input/outputs (I/Os) per second, divided by an agreed upon maximum number of I/Os per second; and a compound summary comprising a composite metric reflective of an extent to which the QoS group is satisfying the agreed-upon bounds on offered load and from the level of service received by its I/Os; based on the compared performance level, identifying one or more candidates for throttling in response to an I/O stream receiving insufficient resources by determining if the client qualifies as a candidate whose received performance level is better than the corresponding contracted service level; and selectively and dynamically issuing a throttling command to the candidate client; and providing a quality of service enforcement point by concurrently monitoring a plurality of I/O streams to candidate clients and by concurrently throttling commands to the candidate clients.