IP Library Granted Patent US 11,055,029
Granted Patent B2
US 11,055,029 · App. 16/786,560 · Granted Jul 6, 2021

Edge case handling in system with dynamic flow control

Inventor: Vladimir Shveidel (Pardes-Hana, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/0613G06F3/0673
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,055,029
App. No.
16/786,560
Granted
Jul 6, 2021
Kind
B2
Abstract

A storage system includes a storage controller that is configured to receive an input-output (IO) request and to obtain a flow control window size of the storage system. The flow control window size is dynamically adjustable by the storage controller based at least in part on an IO latency of the storage system. The storage controller is configured, in response to determining that an actual size of a portion of the IO request to be processed is greater than the flow control window size, to add an entry corresponding to the portion of the IO request to a flow control queue of the storage system with an indication that the portion of the IO request has an effective size equal to the flow control window size. The storage controller is further configured to process the entry in the flow control queue corresponding to the portion of the IO request using the actual size of the portion of the IO request.

Claims (49)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory, the at least one processing device being configured:

to dynamically reduce a flow control window size of a storage system from a first size to a second size;

to determine that an indicated size of an entry in a flow control queue of the storage system is greater than the second size;

to modify the indicated size of the entry based at least in part on the determination that the indicated size of the entry is greater than the second size, the modification comprising setting the indicated size to be less than or equal to the second size.

2. The apparatus of claim 1 , wherein setting the indicated size to be less than or equal to the second size comprises:

removing the entry from the flow control queue based at least in part on the determination that the indicated size of the entry is greater than the second size; and

adding the removed entry back to the flow control queue with an indicated size that is equal to or less than the second size.

3. The apparatus of claim 1 , wherein the at least one processing device is further configured:

to obtain a maximum input-output size of the storage system; and

to determine that the second size is less than the maximum input-output size, wherein the determination that the indicated size of the entry in the flow control queue of the storage system is greater than the second size is based at least in part on the determination that the second size is less than the maximum input-output size.

4. The apparatus of claim 3 , wherein the at least one processor is further configured:

to determine whether or not a total size of a received input-output request is greater than the maximum IO size of the storage system; and

in response to determining that the total size of the received input-output request is greater than the maximum IO size of the storage system, to split the received IO request into a plurality of chunks that are equal to or less than the maximum IO size of the storage system, the entry in the flow control queue corresponding to one of the chunks.

5. The apparatus of claim 4 , wherein each chunk is processed by a separate thread of the at least one processing device.

6. The apparatus of claim 3 , wherein the first size is equal to or greater than the maximum input-output size.

7. The apparatus of claim 1 , wherein setting the indicated size to be less than or equal to the second size comprises setting the indicated size of the entry in the flow control queue to be less than an actual size of the entry.

8. A method comprising:

dynamically reducing a flow control window size of a storage system from a first size to a second size;

determining that an indicated size of an entry in a flow control queue of the storage system is greater than the second size;

modifying the indicated size of the entry based at least in part on the determination that the indicated size of the entry is greater than the second size, the modification comprising setting the indicated size to be less than or equal to the second size;

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

9. The method of claim 8 , wherein setting the indicated size to be less than or equal to the second size comprises:

removing the entry from the flow control queue based at least in part on the determination that the indicated size of the entry is greater than the second size; and

adding the removed entry back to the flow control queue with an indicated size that is equal to or less than the second size.

10. The method of claim 8 , wherein the method further comprises:

obtaining a maximum input-output size of the storage system; and

determining that the second size is less than the maximum input-output size, wherein the determination that the indicated size of the entry in the flow control queue of the storage system is greater than the second size is based at least in part on the determination that the second size is less than the maximum input-output size.

11. The method of claim 10 , wherein the method further comprises:

determining whether or not a total size of a received input-output request is greater than the maximum IO size of the storage system; and

in response to determining that the total size of the received input-output request is greater than the maximum IO size of the storage system, splitting the received IO request into a plurality of chunks that are equal to or less than the maximum IO size of the storage system, the entry in the flow control queue corresponding to one of the chunks.

12. The method of claim 11 , wherein each chunk is processed by a separate thread of the at least one processing device.

13. The method of claim 10 , wherein the first size is equal to or greater than the maximum input-output size.

14. The method of claim 8 , wherein setting the indicated size to be less than or equal to the second size comprises setting the indicated size of the entry in the flow control queue to be less than an actual size of the entry.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to:

to dynamically reduce a flow control window size of a storage system from a first size to a second size;

to determine that an indicated size of an entry in a flow control queue of the storage system is greater than the second size;

to modify the indicated size of the entry based at least in part on the determination that the indicated size of the entry is greater than the second size, the modification comprising setting the indicated size to be less than or equal to the second size.

16. The computer program product of claim 15 , wherein setting the indicated size to be less than or equal to the second size comprises:

removing the entry from the flow control queue based at least in part on the determination that the indicated size of the entry is greater than the second size; and

adding the removed entry back to the flow control queue with an indicated size that is equal to or less than the second size.

17. The computer program product of claim 15 , wherein the program code further causes the at least one processing device:

to obtain a maximum input-output size of the storage system; and

to determine that the second size is less than the maximum input-output size, wherein the determination that the indicated size of the entry in the flow control queue of the storage system is greater than the second size is based at least in part on the determination that the second size is less than the maximum input-output size.

18. The computer program product of claim 17 , wherein the program code further causes the at least one processing device:

to determine whether or not a total size of a received input-output request is greater than the maximum IO size of the storage system; and

in response to determining that the total size of the received input-output request is greater than the maximum IO size of the storage system, to split the received IO request into a plurality of chunks that are equal to or less than the maximum IO size of the storage system, the entry in the flow control queue corresponding to one of the chunks.

19. The computer program product of claim 17 , wherein the first size is equal to or greater than the maximum input-output size.

20. The computer program product of claim 15 , wherein setting the indicated size to be less than or equal to the second size comprises setting the indicated size of the entry in the flow control queue to be less than an actual size of the entry.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2020
From: SHVEIDEL, VLADIMIR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051773/0101 →