NVMe over Fabrics RDMA Protocol Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The performance of NVMe over fabrics (NOF) is poor due to complex interaction and processing procedures when combining the NVMe protocol with the RDMA protocol, leading to increased interactions and processing complexity between terminals and servers.

Innovation Solution

Implementing a method that uses a completion queue (CQ) in the terminal and a submission queue (SQ) in the server, where NVMe instructions are sent via RDMA, reducing interactions and processing complexity by converting NVMe instructions into work queue elements (WQE) for transmission and parsing them back into NVMe instructions for execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the NVMe protocol and RDMA protocol are simply combined to implement NOF, then remote storage access capability is achieved, but the interaction complexity and processing procedures increase significantly

Engineering Contradiction:
Improveremote storage access capabilityVSAvoidinteraction complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges the NVMe protocol and RDMA protocol into a unified NOF protocol. The terminal device directly generates NVMe commands and sends them to the server via RDMA without separate protocol handling layers. This integration reduces the number of interaction steps between terminal and server while maintaining both remote access capability and NVMe functionality, thereby resolving the contradiction between adaptability and device complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If complex interaction procedures are used to complete NVMe operations over fabric, then protocol compatibility is improved, but operation performance deteriorates

Engineering Contradiction:
Improveprotocol compatibilityVSAvoidoperation performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-establishing the unified NOF protocol structure that directly maps NVMe commands to RDMA operations. The terminal device is configured to generate NVMe commands in advance and send them directly to the server through RDMA without requiring complex runtime protocol translation or multiple interaction steps. This preliminary structuring maintains protocol compatibility while significantly improving operation performance by reducing processing overhead.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple interaction steps are implemented between terminal and server, then protocol robustness is improved, but processing speed decreases

Engineering Contradiction:
Improveprotocol robustnessVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent extracts and eliminates unnecessary intermediate interaction steps from the protocol execution path. Instead of implementing multiple separate steps for command transmission, data transfer, and completion notification, the unified NOF protocol directly transmits NVMe commands via RDMA and uses completion queues to notify the terminal of operation results. This extraction of redundant steps maintains protocol robustness through proper error handling and completion tracking while significantly improving processing speed by reducing latency.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3570175B1Method for implementing nvme over fabrics, terminal, server, and system
Publication Date: 2022.04.06 HUAWEI TECH CO LTD
  • EP3570175B1 patent drawingFigure 1a~1b
  • EP3570175B1 patent drawingFigure 1c
  • EP3570175B1 patent drawingFigure 2

AI summary

The present invention relates to a method for implementing non-volatile memory express (NVMe) over fabrics, comprising: generating, by a terminal a NVMe instruction (101), wherein the NVMe instruction comprises a data read operation or a data write operation; sending, by the terminal, by using remote direct memory access (RDMA), the NVMe instruction to a submission queue (SQ) which is set in a server (102); receiving, by the terminal, a NVMe completion instruction sent by using the RDMA by the server (105); and writing, by the terminal, the NVMe completion instruction into a completion queue (CQ) which is set in the terminal (106).