IP Library Granted Patent US 11,481,341
Granted Patent B2
US 11,481,341 · App. 17/083,564 · Granted Oct 25, 2022

System and method for dynamically adjusting priority-based allocation of storage system resources

Inventors: Maher Kachmar (Marlborough, MA); Philippe Armangau (Acton, MA); Michael P. Wahl (Bulverde, TX); Vamsi Vankamamidi (Hopkinton, MA); Yubing Wang (Southborough, MA); Christopher Seibel (Walpole, MA); Christopher J. Jones (North Attleboro, MA); James Vega McCoy (Holliston, MA)
Assignee: EMC IP HOLDING COMPANY, LLC
G06F13/16G06F9/505G06F9/5038G06F2213/16
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 11,481,341
App. No.
17/083,564
Granted
Oct 25, 2022
Kind
B2
Abstract

A method, computer program product, and computing system for defining a token pool size for a storage system token pool associated with a storage system. An input/output (IO) processing load for the storage system may be determined. The token pool size for the storage system token pool associated with the storage system may be dynamically adjusted based upon, at least in part, one or more changes in the IO processing load determined for the storage system.

Claims (56)

1. A computer-implemented method, executed on a computing device, comprising:

defining a token pool size for a storage system token pool associated with a storage system;

determining an input/output (IO) processing load for the storage system, wherein determining the IO processing load for the storage system includes determining a data path latency, an IO rate, and an IO queue time for the storage system; and

dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, one or more changes in the IO processing load determined for the storage system, wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining whether an IO rate slope is one of: up, downward, and constant;

determining whether an IO queue time slope is one of: up, downward, and constant;

determining whether the data path latency is one of: increasing, decreasing, and constant; and

dynamically adjusting the token pool size for the storage system token pool associated with the storage system using a state machine defined with a plurality of IO processing load states based upon, at least in part, the IO rate slope, the IO queue time slope, and the data path latency, wherein the state machine is configured to transition between the plurality of IO processing load states in response to determining a change in one or more of the IO rate slope, the IO queue time slope, and the data path latency.

2. The computer-implemented method of claim 1 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is upward and that the IO queue time slope is up; and

incrementing the token pool size for the storage system token pool associated with the storage system by a first amount.

3. The computer-implemented method of claim 1 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is down and that the IO queue time slope is down; and

decrementing the token pool size for the storage system token pool associated with the storage system by the first amount.

4. The computer-implemented method of claim 1 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is constant and that the IO queue time slope is one of upward and constant; and

one of:

incrementing the token pool size for the storage system token pool associated with the storage system by a second amount when the data latency is increasing; and

decrementing the token pool size for the storage system token pool associated with the storage system by the second amount when the data latency is one of downward and constant.

5. The computer-implemented method of claim 1 , further comprising:

allocating one or more tokens from the storage system token pool associated with the storage system for executing one or more IO requests based upon, at least in part, the token pool size and one or more priority levels associated with the one or more IO requests.

6. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

defining a token pool size for a storage system token pool associated with a storage system;

determining an input/output (IO) processing load for the storage system, wherein determining the IO processing load for the storage system includes determining a data path latency, an IO rate, and an IO queue time for the storage system; and

dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, one or more changes in the IO processing load determined for the storage system, wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining whether an IO rate slope is one of: up, downward, and constant;

determining whether an IO queue time slope is one of: up, downward, and constant;

determining whether the data path latency is one of: increasing, decreasing, and constant; and

dynamically adjusting the token pool size for the storage system token pool associated with the storage system using a state machine defined with a plurality of IO processing load states based upon, at least in part, the IO rate slope, the IO queue time slope, and the data path latency, wherein the state machine is configured to transition between the plurality of IO processing load states in response to determining a change in one or more of the IO rate slope, the IO queue time slope, and the data path latency.

7. The computer program product of claim 6 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is upward and that the IO queue time slope is up; and

incrementing the token pool size for the storage system token pool associated with the storage system by a first amount.

8. The computer program product of claim 6 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is down and that the IO queue time slope is down; and

decrementing the token pool size for the storage system token pool associated with the storage system by the first amount.

9. The computer program product of claim 6 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is constant and that the IO queue time slope is one of upward and constant; and

one of:

incrementing the token pool size for the storage system token pool associated with the storage system by a second amount when the data latency is increasing; and

decrementing the token pool size for the storage system token pool associated with the storage system by the second amount when the data latency is one of downward and constant.

10. The computer program product of claim 6 , wherein the operations further comprise:

allocating one or more tokens from the storage system token pool associated with the storage system for executing one or more IO requests based upon, at least in part, the token pool size and one or more priority levels associated with the one or more IO requests.

11. A computing system comprising:

a memory; and

a processor configured to define a token pool size for a storage system token pool associated with a storage system, wherein the processor is further configured to determine an input/output (IO) processing load for the storage system, wherein determining the IO processing load for the storage system includes determining a data path latency, an IO rate, and an IO queue time for the storage system, and wherein the processor is further configured to dynamically adjust the token pool size for the storage system token pool associated with the storage system based upon, at least in part, one or more changes in the IO processing load determined for the storage system, wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes: determining whether an IO rate slope is one of: up, downward, and constant determining whether an IO queue time slope is one of: up, downward, and constant determining whether the data path latency is one of: increasing, decreasing, and constant and dynamically adjusting the token pool size for the storage system token pool associated with the storage system using a state machine defined with a plurality of IO processing load states based upon, at least in part, the IO rate slope, the IO queue time slope, and the data path latency, wherein the state machine is configured to transition between the plurality of IO processing load states in response to determining a change in one or more of the IO rate slope, the IO queue time slope, and the data path latency.

12. The computing system of claim 11 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is upward and that the IO queue time slope is up; and

incrementing the token pool size for the storage system token pool associated with the storage system by a first amount.

13. The computing system of claim 11 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is down and that the IO queue time slope is down; and

decrementing the token pool size for the storage system token pool associated with the storage system by the first amount.

14. The computing system of claim 11 , wherein dynamically adjusting the token pool size for the storage system token pool associated with the storage system based upon, at least in part, the one or more changes in the IO processing load determined for the storage system includes:

determining that the IO rate slope is constant and that the IO queue time slope is one of upward and constant; and

one of:

incrementing the token pool size for the storage system token pool associated with the storage system by a second amount when the data latency is increasing; and

decrementing the token pool size for the storage system token pool associated with the storage system by the second amount when the data latency is one of downward and constant.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2020
From: KACHMAR, MAHER; ARMANGAU, PHILIPPE; WAHL, MICHAEL P.; VANKAMAMIDI, VAMSI; WANG, YUBING; SEIBEL, CHRISTOPHER; JONES, CHRISTOPHER J.; MCCOY, JAMES VEGA
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 054208/0984 →