System and method for utilizing informed throttling to guarantee quality of service to I/O streams
First Claim
1. A processor-implemented method of utilizing informed throttling to guarantee quality of service to a plurality of clients, 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 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, QoS_Fail category indicative that the client'"'"'s demand does not exceed the corresponding contracted service level, and that the client'"'"'s demand improperly not met, a QoS_Exempt category indicative that the client'"'"'s demand exceeds the corresponding contracted service level, and that the client'"'"'s 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.
2 Assignments
0 Petitions
Accused Products
Abstract
The present system and associated method resolve the problem of providing statistical performance guarantees for applications generating streams of read/write accesses (I/Os) on a shared, potentially distributed storage system of finite resources, by initiating throttling whenever an I/O stream is receiving insufficient resources. The severity of throttling is determined in a dynamic, adaptive way at the storage subsystem level. Global, real-time knowledge about I/O streams is used to apply controls to guarantee quality of service to all I/O streams, providing dynamic control rather than reservation of bandwidth or other resources when an I/O stream is created that will always be applied to that I/O stream. The present system throttles at control points to distribute resources that are not co-located with the control point. A competition model is used with service time estimators in addition to estimated workload characteristics to determine which I/O needs to be throttled and the level of throttling required. A decision point issues throttling commands to enforcement points and selects which streams, and to what extent, need to be throttled.
157 Citations
32 Claims
-
1. A processor-implemented method of utilizing informed throttling to guarantee quality of service to a plurality of clients, 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 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, QoS_Fail category indicative that the client'"'"'s demand does not exceed the corresponding contracted service level, and that the client'"'"'s demand improperly not met, a QoS_Exempt category indicative that the client'"'"'s demand exceeds the corresponding contracted service level, and that the client'"'"'s 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification