NVMe Key-Value Storage Interface Without Block Conversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The conversion of key-value (KV) data into block form and allocation of logical block addresses (LBAs) in NVMe storage devices consumes significant computing resources, leading to performance deterioration and efficiency loss in storage systems.
Innovation Solution
The NVMe protocol is extended to support a direct KV interface, allowing KV data to be transmitted directly between the host and storage device without conversion to blocks, using optimized NVMe commands that include keys and values in the command header or payload, and optionally using pointers for value and metadata storage locations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If KV data is converted into block form and LBA addresses are allocated, then NVMe storage device can store data using block interface, but computing resources of host are consumed and performance deteriorates
Solution Approach 1:
The patent introduces an NVMe storage device as an intermediary that natively supports KV operations. Instead of the host converting KV data to blocks, the storage device itself receives KV commands directly through extended NVMe interfaces and performs the storage operations, eliminating the host's conversion workload while maintaining block interface compatibility through the NVMe protocol layer
2Ease of manufacture
If KV data is converted into block form, then data can be stored in NVMe storage device, but conversion process consumes computing resources and affects running efficiency
Solution Approach 1:
The NVMe storage device performs self-service by natively understanding and processing KV commands. The storage device has built-in KV command interpretation and data organization capabilities, allowing it to store KV data directly without requiring external conversion from the host, thereby eliminating conversion time and improving efficiency
3Adaptability or versatility
If host converts KV commands into data blocks, then NVMe storage device can process the data, but the conversion and LBA allocation consume computing resources
Solution Approach 1:
The NVMe storage device is designed with multi-functionality to handle both traditional block operations and native KV operations through the same NVMe interface. This universal capability allows the device to accept KV commands directly without requiring host-side conversion, maintaining interface compatibility while reducing host resource consumption by consolidating functionality in the storage device
Data Source
Figure 1
Figure 2
Figure 3
AI summary
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.