IP Library Granted Patent US 11,435,906
Granted Patent B2
US 11,435,906 · App. 17/114,042 · Granted Sep 6, 2022

Method, electronic device and computer program product for storage management

Inventors: Xingshan Wang (Shanghai, CN); Ao Sun (Shanghai, CN); Xiaochen Liu (Shanghai, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0619G06F3/067G06F3/0659G06F11/0772G06F11/3034
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,435,906
App. No.
17/114,042
Granted
Sep 6, 2022
Kind
B2
Abstract

Embodiments of the present disclosure relate to a method, an electronic device, and a computer program product for storage management. According to an example implementation of the present disclosure, a method for storage management includes: acquiring, at a host, a target response entry from a response queue, wherein the response queue includes at least one response entry associated with at least one storage device in a storage system which has been accessed by the host, and the target response entry records information about a target response of a target storage device in the at least one storage device to an access operation initiated by the host; determining, based on the target response entry, whether a failure associated with the target response occurs; and acquiring the target response based on the target response entry if it is determined that no failure occurs. Therefore, the storage performance can be improved.

Claims (73)

1. A method, comprising:

acquiring, at a host comprising a processor, a target response entry from a response queue associated with a group of storage devices comprising a storage device associated with a network completion queue and a target storage device associated with a target network completion queue, wherein the response queue comprises at least one response entry associated with the group of storage devices in a storage system that has been accessed by the host, wherein the at least one response entry comprises the target response entry, wherein the target response entry records information about a target response of the target storage device to an access operation initiated by the host, and wherein the acquiring of the target response entry is performed without polling the network completion queue and the target network completion queue;

based on the target response entry, determining whether a failure associated with the target response occurs; and

in response to determining that the failure has not occurred, acquiring the target response based on the target response entry.

2. The method according to claim 1 , wherein the failure comprises at least one of:

a failure of a network that transmits the target response,

a failure of the target storage device, or

a failure of the storage system.

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

in response to determining that the failure has occurred, creating, in response to recovery of the failure, another response queue to replace the response queue.

4. The method according to claim 1 , wherein the acquiring of the target response based on the target response entry comprises:

based on the target response entry, determining an address at which the target response is stored in a memory; and

acquiring the target response from the memory based on the address.

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

creating the response queue;

creating a queue group, wherein a group of network completion queues for receiving a response from the group of storage devices is mapped to the queue group, wherein the response is the target response or a different response, and wherein the group of network completion queues comprises the network completion queue and the target network completion queue; and

associating the queue group with the response queue to use the response queue to store a response entry corresponding to the response received by the group of network completion queues, wherein the response entry is the target response entry or a different response entry.

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

in response to the host initiating an access operation for the group of storage devices, creating the group of network completion queues for the receiving of the response from the group of storage devices; and

mapping the group of network completion queues to the queue group.

7. The method according to claim 6 , wherein the target network completion queue is able to receive the target response from the target storage device, and wherein the method further comprises:

receiving the target response from the target network completion queue;

creating the target response entry based on the target response; and

placing the target response entry into the response queue.

8. A device, comprising:

at least one processing unit; and

at least one memory which is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit, wherein the instructions, when executed by the at least one processing unit, cause the device to perform operations, comprising:

acquiring, at a host of the device, a target response entry from a response queue associated with a group of storage devices comprising a storage device associated with a network completion queue and a target storage device associated with a target network completion queue, wherein the response queue comprises at least one response entry associated with the group of storage devices in a storage system that has been accessed by the host, wherein the at least one response entry comprises the target response entry, wherein the target response entry records information about a target response of the target storage device to an access operation initiated by the host, and wherein the acquiring of the target response entry is performed without polling the network completion queue and the target network completion queue;

determining, based on the target response entry, whether a failure associated with the target response occurs; and

based on determining that the failure has not occurred, acquiring the target response based on the target response entry.

9. The device according to claim 8 , wherein the failure comprises at least one of the following:

a failure of a network that transmits the target response,

a failure of the target storage device, and

a failure of the storage system.

10. The device according to claim 8 , wherein the operations further comprise:

based on determining that the failure has occurred, creating, in response to recovery of the failure, another response queue to replace the response queue.

11. The device according to claim 8 , wherein the acquiring of the target response based on the target response entry comprises:

based on the target response entry, determining an address at which the target response is stored in a memory; and

acquiring the target response from the memory based on the address.

12. The device according to claim 8 , wherein the operations further comprise:

creating the response queue;

creating a queue group, wherein a group of network completion queues for receiving a response from the group of storage devices is mapped to the queue group, wherein the response is the target response or a different response, and wherein the group of network completion queues comprises the network completion queue and the target network completion queue; and

associating the queue group with the response queue to use the response queue to store a response entry corresponding to the response received by the group of network completion queues, wherein the response entry is the target response entry or a different response entry.

13. The device according to claim 12 , wherein the operations further comprise:

in response to the host initiating an access operation for the group of storage devices, creating the group of network completion queues for the receiving of the response from the group of storage devices; and

mapping the group of network completion queues to the queue group.

14. The device according to claim 13 , wherein the target network completion queue is able to receive the target response from the target storage device, and wherein the operations further comprise:

receiving the target response from the target network completion queue;

creating the target response entry based on the target response; and

placing the target response entry into the response queue.

15. A non-transitory computer program product stored on a non-transitory computer-readable medium and comprising machine-executable instructions, wherein the machine-executable instructions, when executed, cause a machine to perform operations, comprising:

acquiring a target response entry from a response queue associated with a group of storage devices comprising a storage device associated with a network completion queue and a target storage device associated with a target network completion queue, wherein the response queue comprises at least one response entry associated with the group of storage devices in a storage system that has been accessed by a host of the machine, wherein the at least one response entry comprises the target response entry, wherein the target response entry records information about a target response of the target storage device to an access operation initiated by the host, and wherein the acquiring of the target response entry is performed without polling the network completion queue and the target network completion queue;

based on the target response entry, determining whether a failure associated with the target response occurs; and

in response to determining that the failure has not occurred, acquiring the target response based on the target response entry.

16. The non-transitory computer program product according to claim 15 , wherein the failure comprises at least one of the following:

a failure of a network that transmits the target response,

a failure of the target storage device, and

a failure of the storage system.

17. The non-transitory computer program product according to claim 15 , wherein the operations further comprise:

in response to determining that the failure has occurred, creating, in response to recovery of the failure, another response queue to replace the response queue.

18. The non-transitory computer program product according to claim 15 , wherein the acquiring of the target response based on the target response entry comprises:

based on the target response entry, determining an address at which the target response is stored in a memory; and

acquiring the target response from the memory based on the address.

19. The non-transitory computer program product according to claim 15 , wherein the operations further comprise:

creating the response queue;

in response to the host initiating an access operation for the at least one storage device, creating a group of network completion queues for receiving a response from the group of storage devices, wherein the response is the target response or a different response, and wherein the group of network completion queues comprises the network completion queue and the target network completion queue;

creating a queue group;

associating the queue group with the response queue to use the response queue to store a response entry corresponding to the response received by the group of network completion queues, wherein the response entry is the target response entry or a different response entry; and

mapping the group of network completion queues to the queue group.

20. The non-transitory computer program product according to claim 19 , wherein the target network completion queue is able to receive the target response from the target storage device, and wherein the operations further comprise:

receiving the target response from the target network completion queue;

creating the target response entry based on the target response; and

placing the target response entry into the response queue.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2020
From: WANG, XINGSHAN; SUN, AO; LIU, XIAOCHEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054567/0716 →
Priority Claims (1)
CN 202011196793.0 · Oct 30, 2020 · national
Continuity (1)
Related Publication 20220137832A1 · May 5, 2022