IP Library Granted Patent US 9,329,964
Granted Patent B2
US 9,329,964 · App. 14/310,300 · Granted May 3, 2016

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 9,329,964
App. No.
14/310,300
Granted
May 3, 2016
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 (41)

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

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 processing comprising:

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 a received I/O request 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;

wherein the virtual tokens are added to the virtual bucket at any given time t x 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 processed electronic I/O requests that have completed during the time elapse between time t x and a time t x-1 .

2. The method of claim 1 , wherein Tokens(t x ) is calculated at periodic intervals.

3. The method of claim 2 , wherein Tokens(t x ) is additionally calculated when an I/O request is received.

4. The method of claim 1 , wherein Tokens(t x ) is calculated at random intervals.

5. The method of claim 1 , wherein Tokens(t x ) is calculated when an I/O request is received.

6. The method of claim 1 , wherein the QueueDepthLimit is a fractional value.

7. The method of claim 1 , wherein processing received I/O requests further comprises waiting to process a received I/O request if the virtual bucket comprises a number of virtual tokens less than zero until the virtual bucket receives additional virtual tokens.

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

receiving electronic I/O requests from a plurality of network-attached servers;

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

monitoring latency of processed electronic I/O requests; and

for each of the network-attached servers, processing received electronic I/O requests by:

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 a received 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;

wherein the virtual tokens are added to the virtual bucket at any given time t x 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 processed electronic I/O requests that have completed during the time elapsed between time t x and a time t x-1 .

9. The method of claim 8 , 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.

10. The method of claim 8 , wherein Tokens(t x ) is calculated for each network-attached server when an I/O request is received from that network-attached server.

11. The method of claim 8 , wherein Tokens(t x ) is calculated for each network-attached server at periodic intervals.

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

13. 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 and:

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

monitoring latency of processed I/O requests; and

for each of the network-attached servers, processing received I/O requests by:

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 a received 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;

wherein the virtual tokens are added to the virtual bucket at any given time t x 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 processed electronic I/O requests that have completed during the time elapsed between time t x and a time t x-1 .

14. The information handling system of claim 13 , wherein the queue depth limit for at least one of the plurality of network-attached servers is a fractional value.

Assignments (16)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
RELEASE OF REEL 033625 FRAME 0688 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0757 →
RELEASE OF REEL 033625 FRAME 0748 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0050 →
RELEASE OF REEL 033625 FRAME 0711 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040016/0903 →
MERGER Recorded Mar 10, 2016
From: COMPELLENT TECHNOLOGIES, INC.
To: DELL INTERNATIONAL L.L.C.
Reel/Frame 038058/0502 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 033625/0688 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033625/0711 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033625/0748 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2014
From: OELKE, DAN
To: COMPELLENT TECHNOLOGIES
Reel/Frame 033578/0445 →