IP Library Granted Patent US 11,586,353
Granted Patent B2
US 11,586,353 · App. 16/880,271 · Granted Feb 21, 2023

Optimized access to high-speed storage device

Inventors: Shuo Lv (Beijing, CN); Leihu Zhang (Beijing, CN); Huan Chen (Beijing, CN); Chen Gong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0604G06F3/0613G06F3/0649G06F3/0659G06F3/0683G06F8/71
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,586,353
App. No.
16/880,271
Granted
Feb 21, 2023
Kind
B2
Abstract

Techniques for storage management involve: in accordance with a determination that an input/output (I/O) request of a storage system is received, determining a target storage device to which the I/O request is directed. The techniques further involve: in accordance with a determination that the target storage device is a storage device of a first type, processing the I/O request by accessing a memory of the storage system. The techniques further involve: in accordance with a determination that the target storage device is a storage device of a second type different from the first type, processing the I/O request without accessing the memory, the storage device of the second type having an access speed higher than that of the storage device of the first type. Accordingly, such techniques can improve performance of a storage system.

Claims (74)

1. A method for storage management, comprising:

in accordance with a determination that an input/output (I/O) request of a storage system is received, determining a target storage device to which the I/O request is directed;

in accordance with a determination that the target storage device is a storage device of a first type, processing the I/O request by accessing a data cache in a memory of the storage system; and

in accordance with a determination that the target storage device is a storage device of a second type different from the first type, processing the I/O request by bypassing the data cache in order to access the target storage device directly, without accessing the data cache, and by bypassing a block buffer that is communicably coupled to the data cache, in order to access the target storage device directly without accessing the block buffer, the storage device of the second type having an access speed higher than that of the storage device of the first type.

2. The method of claim 1 , wherein determining the target storage device comprises:

determining whether target data to which the I/O request is directed has an identifier indicating that the target data is stored in the storage device of the second type;

in accordance with a determination that the target data does not have the identifier, determining that the target storage device is the storage device of the first type; and

in accordance with a determination that the target data has the identifier, determining that the target storage device is the storage device of the second type.

3. The method of claim 2 , wherein the target data to which the I/O request is directed comprises a file; and

wherein the identifier indicating that the target data is stored in the storage device of the second type comprises a flag in an inode of the file.

4. The method of claim 3 , wherein the flag indicates that the file was allocated on the storage device of the second type.

5. The method of claim 3 , wherein data on the target storage device is organized and managed as files.

6. The method of claim 1 , further comprising:

generating an identifier associated with data in the storage device of the second type to indicate that the data is stored in the storage device of the second type.

7. The method of claim 1 , wherein processing the I/O request by accessing the data cache comprises:

in accordance with a determination that the I/O request is to read data from the storage device of the first type, searching for the data in the data cache; and

in accordance with a determination that the data is found in the data cache, reading the data from the data cache.

8. The method of claim 1 , wherein processing the I/O request by accessing the data cache comprises:

in accordance with a determination that the I/O request is to read data from the storage device of the first type, searching for the data in the data cache;

in accordance with a determination that the data is not found in the data cache,

reading the data from the storage device of the first type; and

caching the data in the data cache.

9. The method of claim 1 , wherein processing the I/O request by accessing the data cache comprises:

in accordance with a determination that the I/O request is to write an updated version of data to the storage device of the first type, searching for a previous version of the data in the data cache;

in accordance with a determination that the previous version is not found in the data cache,

caching the updated version in the data cache; and

writing the updated version to the storage device of the first type.

10. The method of claim 1 , wherein processing the I/O request by accessing the data cache comprises:

in accordance with a determination that the I/O request is to write an updated version of data to the storage device of the first type, searching for a previous version of the data in the data cache;

in accordance with a determination that the previous version is found in the data cache,

replacing the previous version in the data cache with the updated version; and

writing the updated version to the storage device of the first type.

11. The method of claim 1 , wherein processing the I/O request without accessing the data cache comprises:

reading data from or writing data to the storage device of the second type via a memory bus of the storage system.

12. The method of claim 1 , wherein an I/O request directed to the storage device of the second type is initially sent to a file data cache in the memory, wherein the file data cache is also used for caching data associated with the storage device of the first type in the data cache, wherein the file data cache is used only as a functional interface when processing the I/O request directed to the storage device of the second type, and wherein the I/O request directed to the storage device of the second type is subsequently performed on the storage device of the second type without accessing the data cache.

13. The method of claim 1 , wherein the storage device of the second type comprises a 3D XPoint storage device.

14. An electronic device, comprising:

at least one processor; and

at least one memory storing computer program instructions, the at least one memory and the computer program instructions being configured, with the at least one processor, to cause the electronic device to:

in accordance with a determination that an input/output (I/O) request of a storage system is received, determine a target storage device to which the I/O request is directed;

in accordance with a determination that the target storage device is a storage device of a first type, process the I/O request by accessing a data cache in a memory of the storage system; and

in accordance with a determination that the target storage device is a storage device of a second type different from the first type, process the I/O request by bypassing the data cache in order to access the target storage device directly, without accessing the data cache, and by bypassing a block buffer that is communicably coupled to the data cache, in order to access the target storage device directly without accessing the block buffer, the storage device of the second type having an access speed higher than that of the storage device of the first type.

15. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are configured, with the at least one processor, to cause the electronic device to determine the target storage device by:

determining whether target data to which the I/O request is directed has an identifier indicating that the target data is stored in the storage device of the second type;

in accordance with a determination that the target data does not have the identifier, determining that the target storage device is the storage device of the first type; and

in accordance with a determination that the target data has the identifier, determining that the target storage device is the storage device of the second type.

16. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are further configured, with the at least one processor, to cause the electronic device to:

generate an identifier associated with data in the storage device of the second type to indicate that the data is stored in the storage device of the second type.

17. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are configured, with the at least one processor, to cause the electronic device to process the I/O request by accessing the data cache by:

in accordance with a determination that the I/O request is to read data from the storage device of the first type, searching for the data in the data cache; and

in accordance with a determination that the data is found in the data cache, reading the data from the data cache.

18. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are configured, with the at least one processor, to cause the electronic device to process the I/O request by accessing the data cache by:

in accordance with a determination that the I/O request is to read data from the storage device of the first type, searching for the data in the data cache;

in accordance with a determination that the data is not found in the data cache,

reading the data from the storage device of the first type; and

caching the data in the data cache.

19. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are configured, with the at least one processor, to cause the electronic device to process the I/O request by accessing the data cache by:

in accordance with a determination that the I/O request is to write an updated version of data to the storage device of the first type, searching for a previous version of the data in the data cache;

in accordance with a determination that the previous version is not found in the data cache,

caching the updated version in the data cache; and

writing the updated version to the storage device of the first type.

20. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are configured, with the at least one processor, to cause the electronic device to process the I/O request by accessing the data cache by:

in accordance with a determination that the I/O request is to write an updated version of data to the storage device of the first type, searching for a previous version of the data in the data cache;

in accordance with a determination that the previous version is found in the data cache,

replacing the previous version in the data cache with the updated version; and

writing the updated version to the storage device of the first type.

21. The electronic device of claim 14 , wherein the at least one memory and the computer program instructions are configured, with the at least one processor, to cause the electronic device to process the I/O request without accessing the data cache by:

reading data from or writing data to the storage device of the second type via a memory bus of the storage system.

22. The electronic device of claim 14 , wherein an I/O request directed to the storage device of the second type is initially sent to a file data cache in the memory, wherein the file data cache is also used for caching data associated with the storage device of the first type in the data cache, wherein the file data cache is used only as a functional interface when processing the I/O request directed to the storage device of the second type, and wherein the I/O request directed to the storage device of the second type is subsequently performed on the storage device of the second type without accessing the data cache.

23. The electronic device of claim 14 , wherein the storage device of the second type comprises a 3D XPoint storage device.

24. A computer program product having a non-transitory computer readable medium which stores a set of instructions to perform storage management; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

in accordance with a determination that an input/output (I/O) request of a storage system is received, determining a target storage device to which the I/O request is directed;

in accordance with a determination that the target storage device is a storage device of a first type, processing the I/O request by accessing a data cache in a memory of the storage system; and

in accordance with a determination that the target storage device is a storage device of a second type different from the first type, processing the I/O request by bypassing the data cache in order to access the target storage device directly, without accessing the data cache, and by bypassing a block buffer that is communicably coupled to the data cache, in order to access the target storage device directly without accessing the block buffer, the storage device of the second type having an access speed higher than that of the storage device of the first type.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2020
From: LV, SHUO; ZHANG, LEIHU; CHEN, HUAN; GONG, CHEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053283/0666 →