Non-Volatile Memory Buffering for NVMe-oF Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In high-performance storage networks, the persistence of transactions in in-memory databases leads to bottlenecks due to the need for writing data to persistent media, despite advancements in NVMe devices and RDMA network interfaces, as existing systems rely on volatile memory for temporary storage, causing latency issues.
Innovation Solution
A network storage appliance with non-volatile semiconductor memory devices, such as resistive or magneto resistive random-access memory, that temporarily stores data from host clients and transfers it to solid-state disks, with a CPU managing data allocation across reserved, local, and remote storage areas, and using RDMA for low-latency data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is written to persistent media (solid state disks) for transaction persistence, then data reliability is improved, but processing latency increases due to write bottlenecks
Solution Approach 1:
The patent introduces non-volatile semiconductor memory as an intermediary layer between volatile memory and persistent storage media. This intermediary buffer accepts write commands from the host immediately (providing low latency) and asynchronously transfers data to solid state disks in the background (ensuring persistence), thereby decoupling the write acknowledgment time from the actual persistent storage time.
Solution Approach 2:
The system performs preliminary data placement in non-volatile semiconductor memory before final persistence to solid state disks. By preparing data in the faster non-volatile memory first, the system can quickly acknowledge write operations to the host while completing the slower persistent storage operation in the background, thus improving perceived write performance while maintaining reliability.
2Speed
If volatile memory is used for temporary storage during data transfer, then data transfer speed is improved, but data loss risk increases and persistence is compromised
Solution Approach 1:
The patent changes the memory parameter from volatile to non-volatile by using non-volatile semiconductor memory for the temporary storage buffer. This parameter change maintains the fast access characteristics needed for high-speed data transfer while adding the persistence capability to retain data without power, thus simultaneously improving both speed and reliability.
3Device complexity
If storage resources are centralized in single appliances, then system complexity is reduced, but resource utilization efficiency decreases in storage networks
Solution Approach 1:
The patent enables storage appliances to serve multiple functions by implementing both local non-volatile memory buffering and remote storage capabilities within the same system. The network interface adapter can operate in both direct-attached storage mode and network-attached storage mode, allowing a single appliance type to fulfill multiple storage roles and improve overall network resource utilization.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A network storage appliance comprises solid state disks, a network interface adapter communicatively coupled to the solid state disks and a host client, a non-volatile semiconductor memory device communicatively coupled to the solid state disks and the network interface adapter, and a CPU communicatively coupled to the non-volatile semiconductor memory device and the network interface adapter. The non-volatile semiconductor memory device can receive data from the host client via the network interface adapter, store the data temporarily, and transfer the data to one of the solid state disks. The CPU can receive a write request from the host client via the network interface adapter, determine whether or not the non-volatile semiconductor memory device is available to store the data, initiate the network interface adapter to perform the transfer of the data, from the host client to the non-volatile semiconductor memory device if the non-volatile semiconductor memory device is available to store the data, and initiate the network interface adapter to broadcast a query to one or more external storages if the non-volatile semiconductor memory device is not available to store the data.