IP Library Granted Patent US 12,197,345
Granted Patent B2
US 12,197,345 · App. 17/947,812 · Granted Jan 14, 2025

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 12,197,345
App. No.
17/947,812
Granted
Jan 14, 2025
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 (57)

1. A data processing method implemented by a non-volatile memory express (NVMe) storage device, the method comprising:

receiving an NVMe command sent by a host, wherein the NVMe command indicates to store a value in the NVMe storage device, the NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair;

obtaining the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; or, obtaining the value based on the NVMe command, wherein the value identifier comprises the value;

identifying a storage space for the value according to the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value; and

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

2. The data processing method of claim 1 , wherein the method further comprises:

recording a correspondence between K and 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.

3. A data processing method implemented by a non-volatile memory express (NVMe) storage device, the method comprising:

receiving a first NVMe command sent by a first host, wherein the first NVMe command indicates to store a value in the NVMe storage device, the first NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair;

obtaining the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; or, obtaining the value based on the first NVMe command, wherein the value identifier comprises the value, and wherein obtaining, based on the value identifier;

identifying a storage space for the value according to the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value;

storing the value in the storage space in the NVMe storage device;

receiving a second NVMe command sent by a second host, wherein the second NVMe command indicates to read the value in the NVMe storage device, the second NVMe command carries the key and the value identifier of the value, and the key and the value belong to the same key value pair;

obtaining the value based on the value identifier; and

sending the value to the second host.

4. 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 indicates to store a value in the NVMe storage device, the NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair;

obtain the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; or, obtain the value based on the NVMe command, wherein the value identifier comprises the value;

identify a storage space for the value according to the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value; and

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

5. The NVMe storage device of claim 4 , wherein the controller is configured to:

record a correspondence between K and 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.

6. 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 a first NVMe command sent by a host, wherein the first NVMe command indicates to store a value in the NVMe storage device, the first NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair;

obtain the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; or, obtain the value based on the first NVMe command, wherein the value identifier comprises the value;

identify a storage space for the value according to the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value; and

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

receive a second NVMe command sent by a second host, wherein the second NVMe command indicates to read the value in the NVMe storage device, the NVMe command carries the key and the value identifier of the value, and the key and the value belong to the same key value pair;

obtain, based on the value identifier, the value; and

send the value to the second host.

7. A storage system, wherein the system comprises a host and a non-volatile memory express (NVMe) storage device, wherein the NVMe storage device comprises 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 host is configured to send a NVMe command, wherein the NVMe command indicates to store a value in the NVMe storage device, the NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair; and

the controller is configured to:

receive the NVMe command;

obtain the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; identify a storage space for the value based on the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value; or, obtain the value based on the NVMe command;

identify a storage space for the value based on the value length in the NVMe storage device; and

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

8. The storage system of claim 7 , wherein:

the controller is further configured to record a correspondence between K and V in a KV mapping relationship in the NVMe storage device, and

the correspondence between K and V comprises a matching relationship between K and V.

9. The storage system of claim 7 , wherein the controller is further configured to:

receive an NVMe command sent by a host, wherein the NVMe command indicates to read a value in the NVMe storage device, the NVMe command carries a key and a value identifier of the value, and the key and the value belong to the same key value pair;

obtain, based on the value identifier, the value; and

send the value to the host.

10. A non-transitory computer-readable storage medium comprising instructions that, responsive to being executed by a computer, cause the computer to:

receive an NVMe command sent by a host, wherein the NVMe command indicates to store a value in the NVMe storage device, the NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair;

obtain the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; or, obtain the value based on the NVMe command, wherein the value identifier comprises the value

identify a storage space for the value according to the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value; and

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

11. A non-transitory computer-readable storage medium comprising instructions that, responsive to being executed by a computer, cause the computer to:

receive an first NVMe command sent by a first host, wherein the first NVMe command indicates to store a value in the NVMe storage device, the first NVMe command carries a key (K) and a value (V) identifier of the value, and the key and the value belong to the same key value pair;

obtain the value based on the pointer of the value, wherein the value identifier comprises a pointer of the value and the pointer indicates a storage location of the value; or, obtain the value based on the first NVMe command, wherein the value identifier comprises the value;

identify a storage space for the value according to the value length in the NVMe storage device, wherein the value identifier further comprises a length of the value; and

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

receive a second NVMe command sent by a second host, wherein the second NVMe command indicates to read the value in the NVMe storage device, the NVMe command carries the key and the value identifier of the value, and the key and the value belong to the same key value pair;

obtain, based on the value identifier, the value; and

send the value to the second host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2022
From: QIU, XIN; XU, HUIFENG; GAO, HAITAO; LIU, HONGGUANG; LIU, HUAWEI; TAN, CHUNYI; GISSIN, VICTOR
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 061139/0917 →
Priority Claims (1)
CN 201510998928.8 · Dec 28, 2015 · national
Continuity (4)
Continuation 16899294 · Jun 11, 2020
Continuation 15971990 · May 4, 2018
Continuation PCTCN2016103268 · Oct 25, 2016
Related Publication 20230011387A1 · Jan 12, 2023
References Cited (27)
US 6415338B1 · Habot · 2002 [cited by applicant]
US 20060095670A1 · Behrendt et al. · 2006 [cited by applicant]
US 20120072656A1 · Archak · 2012 [cited by examiner]
US 20130042055A1 · Kinoshita et al. · 2013 [cited by applicant]
US 20130086311A1 · Huang et al. · 2013 [cited by applicant]
US 20130191590A1 · Malwankar · 2013 [cited by examiner]
US 20150261434A1 · Kagan et al. · 2015 [cited by applicant]
US 20150331619A1 · Zheng et al. · 2015 [cited by applicant]
US 20150370700A1 · Sabol et al. · 2015 [cited by applicant]
US 20160099810A1 · Li et al. · 2016 [cited by applicant]
US 20160232169A1 · Archak et al. · 2016 [cited by applicant]
US 20180210970A1 · Marukame et al. · 2018 [cited by applicant]
CN 1832041A · 2006 [cited by applicant]
CN 102436420A · 2012 [cited by applicant]
CN 102594849A · 2012 [cited by applicant]
CN 102929793A · 2013 [cited by applicant]
CN 103973810A · 2014 [cited by applicant]
CN 104238963A · 2014 [cited by applicant]
CN 104461380A · 2015 [cited by applicant]
JP 2014063540A · 2014 [cited by applicant]
WO 2014089828A1 · 2014 [cited by applicant]
WO 2014209764A1 · 2014 [cited by applicant]
WO 2015136612A1 · 2015 [cited by applicant]
“NVM Express, Management Interface,” Revision 1.0, XP55877983A, pp. 1-96, NVM Express, Inc. (Nov. 17, 2015). [cited by applicant]
“NVM Express Revision 1.2,” XP055375092, pp. 1-205, NVM Express, Inc. (Nov. 3, 2014). [cited by applicant]
U.S. Appl. No. 16/899,294, filed Jun. 11, 2020. [cited by applicant]
U.S. Appl. No. 15/971,990, filed May 4, 2018. [cited by applicant]
Cited By (4)
US 12,436,885 US 12,572,491 US 12,650,944 US 12,664,117