IP Library Granted Patent US 9,372,627
Granted Patent B2
US 9,372,627 · App. 14/862,099 · Granted Jun 21, 2016

Dynamic feedback-based throughput control for black-box storage systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,372,627
App. No.
14/862,099
Granted
Jun 21, 2016
Kind
B2
Abstract

Embodiments of the present invention relate to dynamic feedback-based throughput control for storage systems. In one embodiment, a method of and computer program product for storage throughput control are provided. A plurality of I/O requests is received at a rate controller. The plurality of I/O requests is sent from the rate controller to a storage system at a first rate. Throughput of the storage system is observed. The first rate is dynamically adjusted based on the variance between the observed throughput of the storage system and the first rate.

Claims (63)

1. A method comprising:

receiving a plurality of I/O requests at a rate controller, the rate controller comprising a token bucket;

sending the plurality of I/O requests from the rate controller to a storage system at a control rate, each of the plurality of I/O requests having an associated cost, wherein sending comprises

sending each of the plurality of I/O requests when the token bucket has at least a number of tokens corresponding to the cost of each I/O request and

emptying the token bucket of the number of tokens corresponding to the cost of each I/O request;

refilling the token bucket at a fill rate corresponding to the control rate;

observing throughput of the storage system during periodic time intervals;

dynamically adjusting the control rate based on the variance between the observed throughput of the storage system and the control rate; and

decreasing a number of tokens in the token bucket when the control rate exceeds the throughput during a previous time interval.

2. The method of claim 1 , wherein the cost of each I/O request is proportional to a size of data requested by that I/O request.

3. The method of claim 1 , wherein adjusting the control rate comprises:

determining a deviation between the observed throughput of the storage system and the control rate;

increasing the control rate if the deviation is less than a predetermined value;

decreasing the control rate if the deviation is greater than the predetermined value.

4. The method of claim 1 , wherein adjusting the control rate comprises:

determining a deviation between the observed throughput of the storage system and the control rate;

increasing the control rate if the deviation is less than a first predetermined value;

maintaining the control rate if the deviation is less than a second predetermined value but not less than the first predetermined value;

decreasing the control rate if the deviation is greater than the second predetermined value.

5. The method of claim 4 , wherein increasing the control rate comprises multiplying the control rate by a first scaling factor.

6. The method of claim 5 , wherein the first scaling factor is increased after increasing the control rate.

7. The method of claim 4 , wherein decreasing the control rate comprises multiplying the control rate by a second scaling factor.

8. The method of claim 1 , wherein the rate controller comprises a plurality of token buckets, the method further comprising:

selecting the token bucket from the plurality of token buckets based on a service class of the I/O request.

9. The method of claim 1 , wherein adjusting the control rate occurs periodically.

10. The method of claim 1 , wherein the token bucket can have a negative number of tokens, the method further comprising:

determining a number of excess tokens based on the difference between the control rate and the throughput;

determining a number of consumed tokens of the excess tokens; and

decreasing the number of tokens in the bucket based on the number of consumed tokens.

11. The method of claim 1 , wherein the token bucket further comprises an uncapped counter, the method further comprising:

increasing the uncapped counter at the fill rate;

decreasing the uncapped counter according to the cost of each I/O request; and

decreasing the number of tokens in the bucket based on a difference between the uncapped counter and a number of excess tokens.

12. A system comprising:

a rate controller receiving a plurality of I/O requests, the rate controller comprising a token bucket;

a storage system, the storage system receiving the I/O request from the rate controller at a control rate, each of the plurality of I/O requests having an associated cost, wherein the rate controller

sends each of the plurality of I/O requests when the token bucket has at least a number of tokens corresponding to the cost of each I/O request,

empties the token bucket of the number of tokens corresponding to the cost of each I/O request, and

refills the token bucket at a fill rate corresponding to the control rate;

a control loop observing throughput of the storage system during periodic time intervals, dynamically adjusting the control rate based on the variance between the observed throughput of the storage system and the control rate, and decreasing a number of tokens in the token bucket when the control rate exceeds the throughput during a previous time interval.

13. The system of claim 12 , wherein the cost of each I/O request is proportional to a size of data requested by that I/O request.

14. A computer program product for storage throughput control, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code executable by a processor to:

receive a plurality of I/O requests at a rate controller, the rate controller comprising a token bucket;

send the plurality of I/O requests from the rate controller to a storage system at a control rate, each of the plurality of I/O requests having an associated cost, wherein sending comprises

sending each of the plurality of I/O requests when the token bucket has at least a number of tokens corresponding to the cost of each I/O request and

emptying the token bucket of the number of tokens corresponding to the cost of each I/O request;

refilling the token bucket at a fill rate corresponding to the control rate;

observe throughput of the storage system during periodic time intervals;

dynamically adjust the control rate based on the variance between the observed throughput of the storage system and the control rate; and

decreasing a number of tokens in the token bucket when the control rate exceeds the throughput during a previous time interval.

15. The computer program product of claim 14 , wherein the cost of each I/O request is proportional to a size of data requested by that I/O request.

16. The computer program product of claim 14 , wherein adjusting the control rate comprises:

determining a deviation between the observed throughput of the storage system and the control rate;

increasing the control rate if the deviation is less than a predetermined value;

decreasing the control rate if the deviation is greater than the predetermined value.

17. The computer program product of claim 14 , wherein adjusting the control rate comprises:

determining a deviation between the observed throughput of the storage system and the control rate;

increasing the control rate if the deviation is less than a first predetermined value;

maintaining the control rate if the deviation is less than a second predetermined value but not less than the first predetermined value;

decreasing the control rate if the deviation is greater than the second predetermined value.

18. The computer program product of claim 17 , wherein increasing the control rate comprises multiplying the control rate by a first scaling factor.

19. The computer program product of claim 18 , wherein the first scaling factor is increased after increasing the control rate.

20. The computer program product of claim 17 , wherein decreasing the control rate comprises multiplying the control rate by a second scaling factor.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2015
From: POVZNER, ANNA S.; TEWARI, RENU; WATKINS, NOAH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036663/0869 →