IP Library Granted Patent US 10,977,200
Granted Patent B2
US 10,977,200 · App. 16/699,578 · Granted Apr 13, 2021

Method, apparatus and computer program product for processing I/O request

Inventor: Bing Liu (Tianjin, CN)
Assignee: EMC IP Holding Company LLC
G06F13/1668G06F13/1673
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,977,200
App. No.
16/699,578
Granted
Apr 13, 2021
Kind
B2
Abstract

Embodiments of the present disclosure provide a method, an apparatus and a computer program product for processing an Input/Output (I/O) request. In one embodiment, a method for processing an I/O request comprises: receiving, at a host, a first I/O request of a first type for a storage device, wherein at least a first path configured for processing I/O requests of the first type and a second path configured for processing I/O requests of a second type exist between the host and the storage device; selecting, from the first path and the second path, a path for processing the first I/O request; and processing the first I/O request via the path.

Claims (64)

1. A method for processing an Input/Output (I/O) request, comprising:

receiving, at a host, a first I/O request of a first type for a storage device, wherein at least a first path configured for processing I/O requests of the first type and a second path configured for processing I/O requests of a second type exist between the host and the storage device;

selecting, from the first path and the second path, a selected path for processing the first I/O request; and

processing the first I/O request via the selected path,

wherein a workload of the first path exceeds a workload of the second path, and

wherein selecting the selected path comprises:

determining a first average processing performance of historical I/O requests of the first type;

in response to the first average processing performance being inferior to a first target processing performance:

determining whether the second path is allowed for processing I/O requests of the first type; and

in response to the second path being allowed for processing I/O requests of the first type, selecting the second path as the selected path for processing the first I/O request.

2. The method of claim 1 , wherein determining whether the second path is allowed for processing I/O requests of the first type comprises:

determining a second average processing performance of historical I/O requests processed via the second path;

in response to the second average processing performance being superior to a second target processing performance, determining that the second path is allowed for processing I/O requests of the first type; and

in response to the second average processing performance being inferior to the second target processing performance, determining that the second path is prohibited from processing I/O requests of the first type.

3. The method of claim 1 , wherein the I/O requests of the first type are read requests and the I/O requests of the second type are write requests.

4. The method of claim 1 , wherein the I/O requests of the first type are write requests and the I/O requests of the second type are read requests.

5. The method of claim 1 ,

wherein the selected path comprises a plurality of queues to process I/O requests for different data types, and

wherein processing the first I/O request via the selected path comprises:

determining a determined data type of the different data types for which the first I/O request is directed;

determining, from the plurality of queues, a determined queue associated with the determined data type of the different data types; and

adding the first I/O request into the determined queue.

6. The method of claim 5 , further comprising:

determining a third average processing performance of historical I/O requests for the determined data type;

in response to the third average processing performance being inferior to third target processing performance, increasing a depth of the determined queue; and

in response to the third average processing performance being superior to fourth target processing performance, decreasing the depth of the determined queue.

7. An apparatus for processing an Input/Output (I/O) request, comprising:

at least one processing unit;

at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the apparatus to perform acts comprising:

receiving, at a host, a first I/O request of a first type for a storage device, wherein at least a first path configured for processing I/O requests of the first type and a second path configured for processing I/O requests of a second type exist between the host and the storage device;

selecting, from the first path and the second path, a selected path for processing the first I/O request; and

processing the first I/O request via the selected path,

wherein a workload of the first path exceeds a workload of the second path, and

wherein selecting the selected path comprises:

determining a first average processing performance of historical I/O requests of the first type;

in response to the first average processing performance being inferior to a first target processing performance:

determining whether the second path is allowed for processing I/O requests of the first type; and

in response to the second path being allowed for processing I/O requests of the first type, selecting the second path as the selected path for processing the first I/O request.

8. The apparatus of claim 7 , wherein determining whether the second path is allowed for processing I/O requests of the first type comprises:

determining a second average processing performance of historical I/O requests processed via the second path;

in response to the second average processing performance being superior to a second target processing performance, determining that the second path is allowed for processing I/O requests of the first type; and

in response to the second average processing performance being inferior to the second target processing performance, determining that the second path is prohibited from processing I/O requests of the first type.

9. The apparatus of claim 7 , wherein the I/O requests of the first type are read requests and the I/O requests of the second type are write requests.

10. The apparatus of claim 7 , wherein the I/O requests of the first type are write requests and the I/O requests of the second type are read requests.

11. The apparatus of claim 7 ,

wherein the selected path comprises a plurality of queues to process I/O requests for different data types, and

wherein processing the first I/O request via the selected path comprises:

determining a determined data type for which the first I/O request is directed;

determining, from the plurality of queues, a determined queue associated with the determined data type; and

adding the first I/O request into the determined queue.

12. The apparatus of claim 11 , further comprising:

determining a third average processing performance of historical I/O requests for the determined data type;

in response to the third average processing performance being inferior to third target processing performance, increasing a depth of the queue; and

in response to the third average processing performance being superior to fourth target processing performance, decreasing the depth of the determined queue.

13. A computer program product, which is tangibly stored on a non-transient computer storage medium and includes machine-executable instructions, the machine-executable instructions, when executed by a device, causing the device to execute a method, the method comprising:

receiving, at a host, a first I/O request of a first type for a storage device, wherein at least a first path configured for processing I/O requests of the first type and a second path configured for processing I/O requests of a second type exist between the host and the storage device;

selecting, from the first path and the second path, a selected path for processing the first I/O request; and

processing the first I/O request via the selected path,

wherein a workload of the first path exceeds a workload of the second path, and

wherein selecting the selected path comprises:

determining a first average processing performance of historical I/O requests of the first type;

in response to the first average processing performance being inferior to a first target processing performance:

determining whether the second path is allowed for processing I/O requests of the first type; and

in response to the second path being allowed for processing I/O requests of the first type, selecting the second path as the selected path for processing the first I/O request.

Assignments (9)
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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) 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 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 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 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2020
From: LIU, BING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051711/0741 →