IP Library Granted Patent US 11,709,596
Granted Patent B2
US 11,709,596 · App. 17/025,306 · Granted Jul 25, 2023

Method, device and computer program for data storage

Inventors: Shuo Lv (Beijing, CN); Leihu Zhang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/061G06F3/064G06F3/0659G06F3/0679
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,709,596
App. No.
17/025,306
Granted
Jul 25, 2023
Kind
B2
Abstract

Techniques involve: selecting a stream from a plurality of streams having respective update frequencies, the update frequency of the selected stream matching an update frequency of to-be-written data; determining a label of the data based on a label of the selected stream; and sending a write request for the data to a storage system, the write request comprising the label of the data, so that the storage system performs a write operation for the data based on the stream identified by the label. Accordingly, a write amplification factor can be reduced, thereby increasing the effective life of a storage device and improving read and write performance of the storage system.

Claims (45)

1. A method for data storage, comprising:

selecting a stream from a plurality of streams having respective update frequencies, the update frequency of the selected stream matching an update frequency of to-be-written data, wherein a total number of streams in the plurality of streams is equal to a total number of streams supported by a solid state storage device;

determining a label of the data that both i) is a label of the selected stream and ii) indicates one of a plurality of update frequency levels, wherein a total number of update frequency levels in the plurality of update frequency levels is equal to the total number of streams in the plurality of streams, wherein each update frequency level corresponds to a respective one of a plurality of types of metadata; and

sending a write request for the data to a storage drive, at least in part by a file system setting a field of a block buffer that stores the data to the label of the data, so that the storage drive stores a stream identifier corresponding to the stream identified by the label of the data into the field of the block buffer and then sends the write request to the solid state storage device to cause the solid state storage device to perform a write operation for the data based on the stream identified by the stream identifier.

2. The method of claim 1 , wherein the data comprises metadata, and selecting the stream from the plurality of streams comprises:

selecting the stream based on a type of the metadata, wherein the type of the metadata is associated with an update frequency of the metadata.

3. The method of claim 2 , wherein selecting the stream from the plurality of streams comprises:

selecting a first stream in the plurality of streams as the stream in response to determination that the type of the metadata is a journal;

selecting a second stream in the plurality of streams as the stream in response to determination that the type of the metadata is a virtual block mapping (VBM);

selecting a third stream in the plurality of streams as the stream in response to determination that the type of the metadata is an indirect block (IB); and

selecting a fourth stream in the plurality of streams as the stream in response to determination that the type of the metadata is a superblock, a bitmap, or a per-block metadata (BMD).

4. The method of claim 1 , wherein the storage drive comprises a fast non-volatile memory (NVMe) storage drive.

5. The method of claim 1 , wherein each update frequency level has a single corresponding one of the plurality of streams.

6. The method of claim 1 ,

wherein the stream identifier is one of a plurality of stream identifiers;

wherein a total number of stream identifiers in the plurality of stream identifiers is equal to the total number of streams in the plurality of streams; and

wherein a total number of update frequency levels in the plurality of update frequency levels is equal to the total number of streams in the plurality of streams.

7. The method of claim 6 , further comprising:

classifying individual types of metadata into the plurality of update frequency levels, based on update frequencies of the individual types of metadata, wherein each individual type of metadata is classified into one of the update frequency levels in the plurality of update frequency levels.

8. An electronic device, comprising:

a processor; and

a memory coupled to the processor and comprising instructions stored thereon, wherein when executed by the processor, the instructions cause the electronic device to perform actions comprising:

selecting a stream from a plurality of streams having respective update frequencies, the update frequency of the selected stream matching an update frequency of to-be-written data, wherein a total number of streams in the plurality of streams is equal to a total number of streams supported by a solid state storage device;

determining a label of the data that both i) is a label of the selected stream and ii) indicates one of a plurality of update frequency levels, wherein a total number of update frequency levels in the plurality of update frequency levels is equal to the total number of streams in the plurality of streams, wherein each update frequency level corresponds to a respective one of a plurality of types of metadata; and

sending a write request for the data to a storage drive, at least in part by a file system setting a field of a block buffer that stores the data to the label of the data, so that the storage drive stores a stream identifier corresponding to the stream identified by the label of the data into the field of the block buffer and then sends the write request to the solid state storage device to cause the solid state storage device to perform a write operation for the data based on the stream identified by the label.

9. The electronic device of claim 8 , wherein the data comprises metadata, and selecting the stream from the plurality of streams comprises:

selecting the stream based on a type of the metadata, wherein the type of the metadata is associated with an update frequency of the metadata.

10. The electronic device of claim 9 , wherein selecting the stream from the plurality of streams comprises:

selecting a first stream in the plurality of streams as the stream in response to determination that the type of the metadata is a journal;

selecting a second stream in the plurality of streams as the stream in response to determination that the type of the metadata is a virtual block mapping (VBM);

selecting a third stream in the plurality of streams as the stream in response to determination that the type of the metadata is an indirect block (IB); and

selecting a fourth stream in the plurality of streams as the stream in response to determination that the type of the metadata is a superblock, a bitmap, or a per-block metadata (BMD).

11. The electronic device of claim 8 , wherein the storage drive comprises a fast non-volatile memory (NVMe) storage drive.

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

selecting a stream from a plurality of streams having respective update frequencies, the update frequency of the selected stream matching an update frequency of to-be-written data, wherein a total number of streams in the plurality of streams is equal to a total number of streams supported by a solid state storage device;

determining a label of the data that both i) is a label of the selected stream, and ii) indicates one of a plurality of update frequency levels, wherein a total number of update frequency levels in the plurality of update frequency levels is equal to the total number of streams in the plurality of streams, wherein each update frequency level corresponds to a respective one of a plurality of types of metadata; and

sending a write request for the data to a storage drive, at least in part by a file system setting a field of a block buffer that stores the data to the label of the data, so that the storage drive stores a stream identifier corresponding to the stream identified by the label of the data into the field of the block buffer and then sends the write request to the solid state storage device to cause the solid state storage device to perform a write operation for the data based on the stream identified by the label.

13. The computer program of claim 12 , wherein the data comprises metadata, and selecting the stream from the plurality of streams comprises:

selecting the stream based on a type of the metadata, wherein the type of the metadata is associated with an update frequency of the metadata.

14. The computer program of claim 13 , wherein selecting the stream from the plurality of streams comprises:

selecting a first stream in the plurality of streams as the stream in response to determination that the type of the metadata is a journal;

selecting a second stream in the plurality of streams as the stream in response to determination that the type of the metadata is a virtual block mapping (VBM);

selecting a third stream in the plurality of streams as the stream in response to determination that the type of the metadata is an indirect block (IB); and

selecting a fourth stream in the plurality of streams as the stream in response to determination that the type of the metadata is a superblock, a bitmap, or a per-block metadata (BMD).

15. The computer program of claim 12 , wherein the storage drive comprises a fast non-volatile memory (NVMe) storage drive.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) 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 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) 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 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) 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/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
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 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
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 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2020
From: LV, SHUO; ZHANG, LEIHU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054147/0378 →