IP Library Granted Patent US 10,965,739
Granted Patent B2
US 10,965,739 · App. 15/947,313 · Granted Mar 30, 2021

Time-based congestion discounting for I/O fairness control

Inventors: Enning Xiang (San Jose, CA); Eric Knauft (San Francisco, CA); Yiqi Xu (Redwood City, CA); Xiaochuan Shen (Fremont, CA)
Assignee: VMware, Inc.
H04L67/101G06F3/0604G06F3/067G06F3/0664G06F9/45558H04L43/0882H04L67/1008H04L67/1097H04L67/322H04L69/22
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 10,965,739
App. No.
15/947,313
Granted
Mar 30, 2021
Kind
B2
Abstract

Computer system and method for managing storage requests in a distributed storage system uses congestion signals associated with storage requests, which are generated based on congestion at local storage of the computer system that supports a virtual storage area network. The storage requests are differentiated between a first class of storage requests and at least one other class of storage requests. For a storage request of the first class of storage requests, an actual ratio of a current average bandwidth of the first class of storage requests to a current average bandwidth of a second class of storage requests is calculated and compared with an expected ratio. The congestion signal associated with the storage request is then adjusted and transmitted to at least one source of storage requests for storage request fairness control.

Claims (64)

1. A method for managing storage requests in a distributed storage system, the method comprising:

generating congestion signals associated with storage requests at a host computer of the distributed storage system based on congestion at local storage of the host computer that supports a virtual storage area network;

differentiating the storage requests between a first class of storage requests and at least one other class of storage requests;

calculating an actual ratio of a current average bandwidth of the first class of storage requests to a current average bandwidth of a second class of storage requests;

comparing the actual ratio of the current average bandwidth of the first class of storage requests to the current average bandwidth of the second class of storage requests with an expected ratio;

adjusting a congestion signal associated with the first class of storage requests based on comparison of the actual ratio to the expected ratio to produce an adjusted congestion signal; and

transmitting the adjusted congestion signal to at least one source of storage requests, the adjusted congestion signal being used for storage request fairness control,

wherein comparing the actual ratio of the current average bandwidth of the first class of storage requests to the current average bandwidth of the second class of storage requests with the expected ratio includes dividing the actual ratio by the expected ratio to derive a discounting ratio.

2. The method of claim 1 , further comprising transmitting a second congestion signal, selected from the generated congestion signals, that is associated with another class of storage requests to the at least one source of storage requests without any adjustment.

3. The method of claim 1 , further comprising:

determining whether the discounting ratio is greater than a first threshold; and

setting a congestion discount to a first value if the discounting ratio is greater than a first threshold.

4. The method of claim 3 , further comprising:

determining whether the discounting ratio is less than a second threshold; and

setting the congestion discount to a second value if the discounting ratio is less than a second threshold, wherein the second value is greater than the first value.

5. The method of claim 4 , further comprising:

if the discounting ratio is not greater than the first threshold and not less than a second threshold, setting the congestion discount to an intermediate value between the first value and the second value using the discounting value.

6. The method of claim 5 , wherein setting the congestion discount to an intermediate value includes determining the intermediate value by the position of the discounting ratio on a linear line from the first threshold to the second threshold.

7. The method of claim 1 , further comprising:

recording a timestamp when a processing of a current storage request has completed;

determining a slot index of the current storage request, wherein the slot index indicates one of multiple time slots;

calculating a slot index gap between the slot index of the current storage request and a slot index of a previous storage request of the same class of storage requests; and

deriving an average bandwidth for the current storage request, the average bandwidth being the current average bandwidth of the first class of storage requests or the current average bandwidth of the second class of storage requests.

8. The method of claim 1 , wherein differentiating the storage requests includes examining at least one flag in headers of the storage requests that indicates whether the storage requests belong to the first class of storage requests.

9. A non-transitory computer-readable storage medium containing program instructions for managing storage requests in a distributed storage system, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising:

generating congestion signals associated with storage requests at a host computer of the distributed storage system based on congestion at local storage of the host computer that supports a virtual storage area network;

differentiating the storage requests between a first class of storage requests and at least one other class of storage requests;

calculating an actual ratio of a current average bandwidth of the first class of storage requests to a current average bandwidth of a second class of storage requests;

comparing the actual ratio of a current average bandwidth of the first class of storage requests to a current average bandwidth of a second class of storage requests with an expected ratio;

adjusting a congestion signal associated with the first class of storage requests based on comparison of the actual ratio to the expected ratio to produce an adjusted congestion signal; and

transmitting the adjusted congestion signal to at least one source of storage requests, the adjusted congestion signal being used for storage request fairness control,

wherein comparing the actual ratio of the current average bandwidth of the first class of storage requests to the current average bandwidth of the second class of storage requests with the expected ratio includes dividing the actual ratio by the expected ratio to derive a discounting ratio.

10. The computer-readable storage medium of claim 9 , further comprising transmitting a second congestion signal, selected from the generated congestion signals, that is associated with another class of storage requests to the at least one source of storage requests without any adjustment.

11. The computer-readable storage medium of claim 9 , further comprising:

determining whether the discounting ratio is greater than a first threshold; and

setting a congestion discount to a first value if the discounting ratio is greater than a first threshold.

12. The computer-readable storage medium of claim 11 , further comprising:

determining whether the discounting ratio is less than a second threshold; and

setting the congestion discount to a second value if the discounting ratio is less than a second threshold, wherein the second value is greater than the first value.

13. The computer-readable storage medium of claim 12 , further comprising:

if the discounting ratio is not greater than the first threshold and not less than a second threshold, setting the congestion discount to an intermediate value between the first value and the second value using the discounting value.

14. The computer-readable storage medium of claim 13 , wherein setting the congestion discount to an intermediate value includes determining the intermediate value by the position of the discounting ratio on a linear line from the first threshold to the second threshold.

15. The computer-readable storage medium of claim 9 , further comprising:

recording a timestamp when a processing of a current storage request has completed;

determining a slot index of the current storage request, wherein the slot index indicates one of multiple time slots;

calculating a slot index gap between the slot index of the current storage request and a slot index of a previous storage request of the same class of storage requests; and

deriving an average bandwidth for the current storage request, the average bandwidth being the current average bandwidth of the first class of storage requests or the current average bandwidth of the second class of storage requests.

16. A computer system comprising:

memory; and

a processor configured to:

generate congestion signals associated with storage requests based on congestion at local storage of the computer system that supports a virtual storage area network;

differentiate the storage requests between a first class of storage requests and at least one other class of storage requests;

calculate an actual ratio of a current average bandwidth of the first class of storage requests to a current average bandwidth of a second class of storage requests;

compare the actual ratio of a current average bandwidth of the first class of storage requests to a current average bandwidth of a second class of storage requests with an expected ratio;

adjust a congestion signal associated with the first class of storage requests based on comparison of the actual ratio to the expected ratio to produce an adjusted congestion signal; and

transmit the adjusted congestion signal to at least one source of storage requests, the adjusted congestion signal being used for storage request fairness control,

wherein comparing the actual ratio of the current average bandwidth of the first class of storage requests to the current average bandwidth of the second class of storage requests with the expected ratio includes dividing the actual ratio by the expected ratio to derive a discounting ratio.

17. The computer system of claim 16 , wherein the processor is further configured to set a congestion discount to a first value if the discounting ratio is greater than a first threshold, or set the congestion discount to a second value if the discounting ratio is less than a second threshold, wherein the second value is greater than the first value.

18. The computer system of claim 17 , wherein the processor is further configured to set the congestion discount to an intermediate value between the first value and the second value using the discounting ratio if the discounting ratio is not greater than the first threshold and not less than a second threshold.

19. The computer system of claim 16 , wherein the processor is further configured to:

record a timestamp when a processing of a current storage request has completed;

determine a slot index of the current storage request, wherein the slot index indicates one of multiple time slots;

calculate a slot index gap between the slot index of the current storage request and a slot index of a previous storage request of the same class of storage requests; and

derive an average bandwidth for the current storage request, the average bandwidth being the current average bandwidth of the first class of storage requests or the current average bandwidth of the second class of storage requests.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2018
From: XIANG, ENNING; KNAUFT, ERIC; XU, YIQI; SHEN, XIAOCHUAN
To: VMWARE, INC.
Reel/Frame 047345/0185 →