IP Library › Granted Patent US 10,740,001
Granted Patent B2
US 10,740,001 · App. 16/176,301 · Granted Aug 11, 2020

Method, apparatus and computer program product for managing input/output

Inventors: Lifeng Yang (Beijing, CN); Xinlei Xu (Beijing, CN); Liam Li (Beijing, CN); Ruiyong Jia (Beijing, CN); Yousheng Liu (Beijing, CN)
Assignee: Dell Products L.P.
G06F3/061G06F3/0659G06F3/0689
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,740,001
App. No.
16/176,301
Granted
Aug 11, 2020
Kind
B2
Abstract

Embodiments of the present disclosure provide a method, an apparatus and a computer program product for managing an input/output (I/O). The method comprises, in response to receiving a first I/O request of a first type for a storage device, determining whether there exists at least one credit available to the first type of I/O requests. Each of the at least one credit indicates I/O processing capability reserved by the storage device for the first type of I/O requests. The method further comprises allocating a first credit to the first I/O request based on a result of the determining. The method further comprises performing, by using the first credit, an I/O operation requested by the first I/O request on the storage device. Moreover, the method further comprises, in response to completion of the I/O operation, recycling the first credit for use by a subsequent I/O request. Embodiments of the present disclosure can implement dynamic allocation of I/O processing capability for different types of I/Os.

Claims (52)

1. A method of managing an input/output (I/O), comprising:

in response to receiving a first I/O request of a first type for a storage device, determining whether there exists at least one credit available to the first type of I/O requests, each of the at least one credit indicating I/O processing capability reserved by the storage device for the first type of I/O requests;

allocating a first credit to the first I/O request based on a result of the determining;

performing, by using the first credit, an I/O operation requested by the first I/O request on the storage device;

in response to completion of the I/O operation, recycling the first credit for use by a subsequent I/O request;

in response to determining that there exists at least one credit, and receiving a first request to allocate a second credit from the at least one credit for a second I/O request of a second type, determining an average response time of the first type of I/O requests; and

in response to the average response time being below a predetermined threshold, allocating the second credit from the at least one credit to the second I/O request.

2. The method according to claim 1 , wherein allocating the first credit to the first I/O request comprises:

in response to determining that there exists the at least one credit, allocating the first credit from the at least one credit to the first I/O request.

3. The method according to claim 1 , wherein allocating the first credit to the first I/O request comprises:

in response to determining an absence of the at least one credit, adding the first I/O request to a waiting queue, so as to wait for one or more credits allocated to the first type of I/O requests to be recycled; and

in response to the one or more credits being recycled, allocating the first credit from the one or more credits to the first I/O request.

4. The method according to claim 3 , further comprising:

changing a length of the waiting queue based on a result of the performing of the I/O operation.

5. The method according to claim 1 , further comprising:

in response to receiving a second request to expedite processing of the first type of I/O requests, recycling the second credit for use by a subsequent I/O request of the first type.

6. The method according to claim 1 , wherein a first priority assigned to an I/O request of the first type is higher than a second priority assigned to an I/O request of the second type.

7. The method according to claim 1 , wherein the first type of I/O requests are used for reading/writing system configuration information from/to the storage device, and the second type of I/O requests are used for reading/writing user data from/to the storage device.

8. The method according to claim 1 , wherein the storage device is a redundant array of independent disks (RAID), and wherein the I/O processing capability is represented by a number of I/O operations that the RAID is able to process concurrently.

9. An apparatus of managing an input/output (I/O), 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 including:

in response to receiving a first I/O request of a first type for a storage device, determining whether there exists at least one credit available to the first type of I/O requests, each of the at least one credit indicating I/O processing capability reserved by the storage device for the first type of I/O requests;

allocating a first credit to the first I/O request based on a result of the determining;

performing, by using the first credit, an I/O operation requested by the first I/O request on the storage device;

in response to completion of the I/O operation, recycling the first credit for use by a subsequent I/O request;

in response to determining that there exists at least one credit, and receiving a first request to allocate a second credit from the at least one credit for a second I/O request of a second type, determining an average response time of the first type of I/O requests; and

in response to the average response time being below a predetermined threshold, allocating the second credit from the at least one credit to the second I/O request.

10. The apparatus according to claim 9 , wherein allocating the first credit to the first I/O request comprises:

in response to determining that there exists the at least one credit, allocating the first credit from the at least one credit to the first I/O request.

11. The apparatus according to claim 9 , wherein allocating the first credit to the first I/O request comprises:

in response to determining an absence of the at least one credit, adding the first I/O request to a waiting queue, so as to wait for one or more credits allocated to the first type of I/O requests to be recycled; and

in response to the one or more credits being recycled, allocating the first credit from the one or more credits to the first I/O request.

12. The apparatus according to claim 11 , wherein the acts further include:

changing a length of the waiting queue based on a result of the performing of the I/O operation.

13. The apparatus according to claim 9 , wherein the acts further include:

in response to receiving a second request to expedite processing of the first type of I/O requests, recycling the second credit for use by a subsequent I/O request of the first type.

14. The apparatus according to claim 9 , wherein a first priority assigned to an I/O request of the first type is higher than a second priority assigned to an I/O request of the second type.

15. The apparatus according to claim 9 , wherein the first type of I/O requests are used for reading/writing system configuration information from/to the storage device, and the second type of I/O requests are used for reading/writing user data from/to the storage device.

16. The apparatus according to claim 9 , wherein the storage device is a redundant array of independent disks (RAID), and wherein the I/O processing capability is represented by a number of I/O operations that the RAID is able to process concurrently.

17. A computer program product comprising a non-transient computer storage medium having stored therein machine executable instructions of one or more software programs, wherein the machine executable instructions when executed by an apparatus, cause the apparatus:

in response to receiving a first I/O request of a first type for a storage device, to determine whether there exists at least one credit available to the first type of I/O requests, each of the at least one credit indicating I/O processing capability reserved by the storage device for the first type of I/O requests;

to allocate a first credit to the first I/O request based on a result of the determining;

to perform, by using the first credit, an I/O operation requested by the first I/O request on the storage device;

in response to completion of the I/O operation, to recycle the first credit for use by a subsequent I/O request;

in response to determining that there exists at least one credit, and receiving a first request to allocate a second credit from the at least one credit for a second I/O request of a second type, to determine an average response time of the first type of I/O requests; and

in response to the average response time being below a predetermined threshold, to allocate the second credit from the at least one credit to the second I/O request.

18. The computer program product according to claim 17 , wherein allocating the first credit to the first I/O request comprises:

in response to determining that there exists the at least one credit, allocating the first credit from the at least one credit to the first I/O request.

19. The computer program product according to claim 17 , wherein the machine executable instructions when executed by the apparatus, further cause the apparatus:

in response to receiving a second request to expedite processing of the first type of I/O requests, to recycle the second credit for use by a subsequent I/O request of the first type.

20. The computer program product according to claim 17 , wherein a first priority assigned to an I/O request of the first type is higher than a second priority assigned to an I/O request of the second type.

Assignments (4)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2018
From: YANG, LIFENG; XU, XINLEI; LI, LIAM; JIA, RUIYONG; LIU, YOUSHENG
To: DELL PRODUCTS L.P.
Reel/Frame 047813/0725 →
Priority Claims (1)
CN 2018 1 0049787 · Jan 18, 2018 · national
Continuity (1)
Related Publication 20190220189A1 · Jul 18, 2019