IP Library Granted Patent US 10,027,651
Granted Patent B2
US 10,027,651 · App. 15/416,525 · Granted Jul 17, 2018

Shaping I/O traffic by managing queue depth in fractional increments

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,027,651
App. No.
15/416,525
Granted
Jul 17, 2018
Kind
B2
Abstract

A method for managing input/output (I/O) traffic in an information handling system. The method may include receiving electronic I/O requests from a network-attached server, determining a queue depth limit, monitoring latency of processed electronic I/O requests, and processing received electronic I/O requests. The number of electronic I/O requests permitted to be processed over a period of time may be based on a mathematical combination of the queue depth limit and a latency of processed electronic I/O requests. The determined queue depth limit may be a fractional value.

Claims (42)

1. A method for managing input/output (I/O) traffic in an information handling system, the method comprising:

monitoring latency of previously processed electronic I/O requests;

determining a queue depth limit;

receiving additional electronic I/O requests from a network-attached server; and

processing the additional electronic I/O requests, wherein the number of additional electronic I/O requests permitted to be processed over a period of time is based on a mathematical combination of the queue depth limit and the latency of previously processed electronic I/O requests.

2. The method of claim 1 , wherein processing the additional electronic I/O requests comprises:

managing a virtual bucket comprising a number of virtual tokens, each token representative of authorization for an I/O request to be processed; and

permitting one of the additional electronic I/O requests to be processed if the virtual bucket comprises a number of virtual tokens greater than zero, and decrementing the number of virtual tokens by at least one.

3. The method of claim 2 , wherein calculating a number of virtual tokens to add to the virtual bucket at any given time t x is performed according to the equation:

Tokens( t x )=QueueDepthLimit*TimeElapsed( t x −t x-1 )/Latency

wherein Tokens(t x ) gives a value corresponding to a number of virtual tokens to be added to the virtual bucket at time t x ; QueueDepthLimit is the determined queue depth limit; TimeElapsed(t x −t x-1 ) is an amount of time elapsed between time t x and a time t x-1 , where t x-1 is a point in time prior to time t x ; and Latency is a latency of previously processed electronic I/O requests that have completed during the time elapsed between time t x and a time t x-1 .

4. The method of claim 3 , wherein the QueueDepthLimit is a fractional value.

5. The method of claim 2 , wherein processing the additional electronic I/O requests further comprising waiting to process a received I/O request if the virtual bucket comprises a number of virtual tokens no more than zero until the virtual bucket receives additional virtual tokens.

6. The method of claim 1 , wherein the mathematical combination of the queue depth limit and the latency of previously processed electronic I/O requests is calculated at periodic intervals.

7. The method of claim 6 , wherein the mathematical combination of the queue depth limit and the latency of previously processed electronic I/O requests is additionally calculated when an electronic I/O request is received.

8. The method of claim 1 , wherein the mathematical combination of the queue depth limit and the latency of previously processed electronic I/O requests is calculated at random intervals.

9. The method of claim 1 , wherein the mathematical combination of the queue depth limit and the latency of previously processed electronic I/O requests is calculated when an electronic I/O request is received.

10. The method of claim 1 , wherein the queue depth limit is a fractional value.

11. A method for managing input/output (I/O) traffic in an information handling system, the method comprising:

monitoring latency of previously processed electronic I/O requests, the electronic I/O requests having been received from a plurality of network-attached servers;

determining a queue depth limit for each of the plurality of network-attached servers;

receiving additional electronic I/O requests from the plurality of network-attached servers; and

processing the additional electronic I/O requests for each of the network-attached servers, wherein the number of additional electronic I/O requests permitted to be processed for a given network-attached server over a period of time is based on a mathematical combination of the queue depth limit determined for that network-attached server and the latency of previously processed electronic I/O requests.

12. The method of claim 11 , wherein the queue depth limit for one of the plurality of network-attached servers is different than at least one other of the plurality of network-attached servers.

13. The method of claim 11 , wherein processing received I/O requests for each of the network-attached servers comprises, for each of the network-attached servers:

managing a virtual bucket comprising a number of virtual tokens, each token representative of authorization for an I/O request from at least that network-attached server to be processed; and

permitting one of the additional electronic I/O request from that network-attached server to be processed if the virtual bucket comprises a number of virtual tokens greater than zero, and decrementing the number of virtual tokens by at least one.

14. The method of claim 11 , wherein the mathematical combination is calculated for a given network-attached server when an I/O request is received from that network-attached server.

15. The method of claim 11 , wherein the mathematical combination is calculated for each network-attached server at periodic intervals.

16. The method of claim 15 , wherein calculating a number of virtual tokens to add to the virtual bucket at any given time t x is performed according to the equation:

Tokens( t x )=QueueDepthLimit*TimeElapsed( t x −t x-1 )/Latency

wherein Tokens(t x ) gives a value corresponding to a number of virtual tokens to be added to the virtual bucket at time t x ; QueueDepthLimit is the determined queue depth limit for that network-attached server; TimeElapsed(t x −t x-1 ) is an amount of time elapsed between time t x and a time t x-1 , where t x-1 is a point in time prior to time t x ; and Latency is a latency of previously processed electronic I/O requests that have completed during the time elapsed between time t x and a time t x-1 .

17. The method of claim 16 , wherein the QueueDepthLimit for at least one of the network-attached servers is a fractional value.

18. The method of claim 11 , wherein the queue depth limit for at least one of the network-attached servers is a fractional value.

19. An information handling system comprising:

a data storage system receiving I/O requests from two or more network-attached servers; and

a controller managing the data storage system, including:

monitoring latency of previously processed electronic I/O requests;

storing a queue depth limit for each of the two or more network-attached servers;

receiving additional electronic I/O requests from the two or more network-attached servers; and

processing the additional electronic I/O requests for each of the network-attached servers, wherein the number of additional electronic I/O requests permitted to be processed for a given network-attached server over a period of time is based on a mathematical combination of the queue depth limit determined for that network-attached server and the latency of previously processed electronic I/O requests.

20. The information handling system of claim 19 , wherein the queue depth limit for at least one of the two or more network-attached servers is a fractional value.

Assignments (9)
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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (041829/0873) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0724 →
RELEASE OF SECURITY INTEREST AT REEL 041808 FRAME 0516 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0573 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
PATENT SECURITY INTEREST (NOTES) Recorded Feb 28, 2017
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 041829/0873 →
PATENT SECURITY INTEREST (CREDIT) Recorded Feb 24, 2017
From: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 041808/0516 →
MERGER Recorded Jan 26, 2017
From: COMPELLENT TECHNOLOGIES, INC.
To: DELL INTERNATIONAL L.L.C.
Reel/Frame 041094/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2017
From: OELKE, DAN
To: COMPELLENT TECHNOLOGIES
Reel/Frame 041094/0522 →