IP Library Granted Patent US 11,467,975
Granted Patent B2
US 11,467,975 · App. 16/899,294 · Granted Oct 11, 2022

Data processing method and NVMe storage device

Inventors: Xin Qiu (Shenzhen, CN); Huifeng Xu (Shenzhen, CN); Haitao Guo (Hangzhou, CN); Hongguang Liu (Hangzhou, CN); Huawei Liu (Shenzhen, CN); Chunyi Tan (Chengdu, CN); Victor Gissin (Shenzhen, CN)
Assignee: Huawei Technologies Co., Ltd.
G06F12/1009G06F3/061G06F3/0655G06F3/0679G06F3/0688G06F13/1668G06F13/28G06F15/17331G06F2212/7201G06F2213/0026
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,467,975
App. No.
16/899,294
Granted
Oct 11, 2022
Kind
B2
Abstract

A data processing method and a storage apparatus are disclosed. The data processing method includes: receiving, by an NVMe storage device, an NVMe write command sent by a host, where the NVMe write command carries a key and a value pointer, the value pointer points to first storage space, and the first storage space is used to store a value; obtaining, by the NVMe storage device, the key from the NVMe write command and a value length, and allocating second storage space to the value according to the value length, where the second storage space is in the NVMe storage device; and obtaining, by the NVMe storage device, the value from the host, and storing the value in the second storage space.

Claims (72)

1. A data processing method, wherein the method comprises:

receiving, by a non-volatile memory express (NVMe) storage device, an NVMe command sent by a host, wherein the NVMe command carries a key and a value, and the key and the value belong to a same key-value (KV) pair, and the NVMe storage device communicates with the host utilizing a NVMe protocol or a NVMe Over Fabric (NoF) protocol;

obtaining, by the NVMe storage device based on the NVMe command, the key and the value;

completing, by the NVMe storage device, processing of the NVMe command.

2. The data processing method according to claim 1 , wherein the NVMe command further carries a quantity of KVs in the NVMe command.

3. The data processing method according to claim 1 , wherein the NVMe command is a write command.

4. The data processing method according to claim 3 , wherein the obtaining, by the NVMe storage device according to the NVMe command, the key and the value comprises:

obtaining, by the NVMe storage device, the key and a value length and a location in the host;

wherein the completing, by the NVMe storage device, processing of the NVMe command comprises:

allocating, by the NVMe storage device, a storage space to the value according to the value length in the NVMe storage device;

obtaining, by the NVMe storage device, the value from the host; and

storing, by the NVMe storage device, the value in the storage space in the NVMe storage device.

5. The data processing method according to claim 4 , wherein the method further comprise:

storing, by the NVMe storage device, a correspondence between the key (K) and the value (V) in a KV mapping relationship in the NVMe storage device, wherein the correspondence between K and V comprises a matching relationship between K and V, a storage location of the first storage space, and metadata, and the metadata is used to indicate an attribute of V.

6. The data processing method according to claim 4 , wherein the method comprises:

obtaining, by the NVMe storage device responsive to determining that the quantity of KVs in the NVMe command is greater than 1, keys whose quantity is the same as the quantity of KVs and values whose quantity is the same as the quantity of KVs.

7. The data processing method according to claim 1 , wherein the NVMe command is a read command.

8. The data processing method according to claim 7 , wherein obtaining, by the NVMe storage device based on the NVMe command, the key and the value comprises:

querying, by the NVMe storage device according to a KV mapping relationship, a location that is in storage space of NVMe storage device and that is of the value corresponding to the key; and

wherein the completing, by the NVMe storage device, processing of the command according to the key and the value comprises:

sending, by the NVMe storage device, a location of the storage space in NVMe storage device to the host; and;

receiving, by the NVMe storage device, a transmission request sent by the host, wherein the transmission request is used to request to obtain the data stored in the storage space.

9. The data processing method according to claim 7 , wherein obtaining, by the NVMe storage device based on the NVMe command, the key and the value comprises:

obtaining, by the NVMe storage device responsive to determining that the quantity of KVs in the NVMe command is greater than 1, keys whose quantity is the same as the quantity of KVs and values whose quantity is the same as the quantity of KVs.

10. A non-volatile memory express (NVMe) storage device, comprising a controller and a storage medium, wherein the controller is connected to the storage medium, and the storage medium is configured to provide storage space, wherein the controller is configured to:

receive an NVMe command sent by a host, wherein the NVMe command comprising a key and a value, and the key and the value belong to a same key-value (KV) pair, and the NVMe storage device communicates with the host utilizing a NVMe protocol or a NVMe Over Fabric (NoF) protocol;

obtain, based on the NVMe command, the key and the value;

complete processing of the NVMe command.

11. The non-volatile memory express (NVMe) storage device of claim 10 , wherein the NVMe command further carries a quantity of KVs in the NVMe command.

12. The non-volatile memory express (NVMe) storage device of claim 10 , wherein the NVMe command is a write command.

13. The non-volatile memory express (NVMe) storage device of claim 12 , the controller is further configured to:

obtain the key and a value length and a location in the host;

allocate a storage space to the value according to the value length in the NVMe storage device;

obtain the value from the host; and

store the value in the storage space in the NVMe storage device.

14. The non-volatile memory express (NVMe) storage device of claim 13 , the controller is further configured to:

store a correspondence between the key (K) and the value (V) in a KV mapping relationship in the NVMe storage device, wherein the correspondence between K and V comprises a matching relationship between K and V, a storage location of the first storage space, and metadata, and the metadata is used to indicate an attribute of V.

15. The non-volatile memory express (NVMe) storage device of claim 13 , wherein the controller is further configured to:

obtain, when the quantity of KVs in the NVMe command is greater than 1, keys whose quantity is the same as the quantity of KVs and values whose quantity is the same as the quantity of KVs.

16. The non-volatile memory express (NVMe) storage device of claim 10 , wherein the NVMe command is a read command.

17. The non-volatile memory express (NVMe) storage device of claim 16 , wherein the controller is further configured to:

query, according to a KV mapping relationship, a location that is in storage space of NVMe storage device and that is of the value corresponding to the key; and

send a location of the storage space in NVMe storage device to the host; and;

receive a transmission request sent by the host, wherein the transmission request is used to request to obtain the data stored in the storage space.

18. The non-volatile memory express (NVMe) storage device of claim 16 , wherein the controller is further configured to:

obtain, responsive to determining that the quantity of KVs in the NVMe command is greater than 1, keys whose quantity is the same as the quantity of KVs and values whose quantity is the same as the quantity of KVs.

19. A non-transitory computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out steps:

receiving, by a non-volatile memory express (NVMe) storage device, an NVMe command sent by a host, wherein the NVMe command comprising a key and a value, and the key and the value belong to a same key-value (KV) pair, and the NVMe storage device communicates with the host utilizing a NVMe protocol or a NVMe Over Fabric (NoF) protocol;

obtaining, by the NVMe storage device based on the NVMe command, the key and the value;

completing, by the NVMe storage device, processing of the NVMe command.

20. The non-transitory computer-readable storage medium of claim 19 , wherein the NVMe command further carries a quantity of KVs in the NVMe command.

21. A non-volatile memory express (NVMe) storage system, comprising a host and a NVMe storage device, wherein the NVMe storage device is coupled to the host by NVMe or NVMe Over Fabric (NoF);

wherein the host is configured to send an NVMe command that carries a key and a value, and the key and the value belong to a same key-value (KV) pair; and

wherein the NVMe storage device is configured to receive the NVMe command, obtain, based on the NVMe command, the key and the value, and complete processing of the NVMe command.

22. The NVMe storage system of claim 21 , wherein the NVMe command further carries a quantity of KVs in the NVMe command.

23. The NVMe storage system of claim 22 , wherein the NVMe command is a write command.

24. The NVMe storage system of claim 23 , wherein the NVMe device is further configured to:

obtain the key and a value length and location in the host;

allocate a storage space to the value according to the value length in the NVMe storage device;

obtain the value from the host; and

store the value in the storage space in the NVMe storage device.

25. The NVMe storage system of claim 24 , wherein the NVMe storage device is further configured to:

store a correspondence between the key (K) and the value (V) in a KV mapping relationship in the NVMe storage device, wherein the correspondence between K and V comprises a matching relationship between K and V, a storage location of the first storage space, and metadata, and the metadata is used to indicate an attribute of V.

26. The NVMe storage system of claim 24 , wherein the NVMe storage device is further configured to:

obtain, responsive to determining that the quantity of KVs in the NVMe command is greater than 1, keys whose quantity is the same as the quantity of KVs and values whose quantity is the same as the quantity of KVs.

27. The NVMe storage system of claim 21 , wherein the NVMe command is a read command.

28. The NVMe storage system of claim 27 , wherein the NVMe storage device is further configured to:

query, according to a KV mapping relationship, a location that is in a storage space of the NVMe storage device and that is of the value corresponding to the key; and

send a location of the storage space of the NVMe storage device to the host; and

receive a transmission request sent by the host, wherein the transmission request is a request to obtain the data stored in the storage space of the NVME storage device.

29. The NVMe storage system of claim 27 , wherein the NVMe storage device is further configured to:

obtain, responsive to determining that the quantity of KVs in the NVMe command is greater than 1, keys whose quantity is the same as the quantity of KVs and values whose quantity is the same as the quantity of KVs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2022
From: QIU, XIN; XU, HUIFENG; GUO, HAITAO; LIU, HONGGUANG; LIU, HUAWEI; TAN, CHUNYI; GISSIN, VICTOR
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 060924/0467 →
Priority Claims (1)
CN 201510998928.8 · Dec 28, 2015 · national
Continuity (3)
Continuation 15971990 · May 4, 2018
Continuation PCTCN2016103268 · Oct 25, 2016
Related Publication 20200301850A1 · Sep 24, 2020