Non-Volatile Memory Buffering for NVMe-oF Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata persistenceVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata transfer speedVSAvoiddata persistence
Core Design Contradiction:
SpeedVSReliability

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.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If storage resources are centralized in single appliances, then system complexity is reduced, but resource utilization efficiency decreases in storage networks

Engineering Contradiction:
Improvesystem complexityVSAvoidresource utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3662642B1NVM express over fabrics
Publication Date: 2023.06.07 KIOXIA CORP
  • EP3662642B1 patent drawingFigure 1
  • EP3662642B1 patent drawingFigure 2
  • EP3662642B1 patent drawingFigure 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.