User Space NVMe over RDMA Library for Host Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current NVMeoF host solutions suffer from performance issues and integration challenges with existing data path software stacks, particularly in scenarios requiring internal host implementations like Disk Array Enclosures and software-defined network attached storage, where existing solutions like Linux kernel modules and SPDK have high CPU utilization, latency, and low scalability.

Innovation Solution

A multi-platform user-space NVMe over RDMA library that integrates with any software stack with RDMA capabilities, offering kernel bypass, memory pre-registration, and optimized thin block layer functionality, providing better performance and scalability compared to Linux solutions and easier integration compared to SPDK.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If Linux kernel modules are used for NVMeoF host implementation, then integration with existing data path software stacks is improved, but CPU utilization increases and latency increases

Engineering Contradiction:
Improveintegration capabilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the NVMeoF host implementation into a modular library structure with separate components for RDMA operations, NVMe protocol handling, and block layer functionality. This allows selective integration with different software stacks without requiring full kernel module deployment, thus maintaining performance while improving adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary library layer between the RDMA transport and NVMe protocol processing. This intermediary structure enables efficient data path operations without direct kernel involvement, reducing CPU utilization and latency while maintaining integration capabilities through standardized interfaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If SPDK is used for NVMeoF host implementation, then performance is improved, but integration with existing data path software stacks becomes difficult

Engineering Contradiction:
ImproveperformanceVSAvoidintegration capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent designs a universal library interface that can work with multiple RDMA implementations and software stacks. The library provides standardized functions for memory registration, queue creation, and I/O submission that are compatible with both traditional Linux data paths and modern user-space frameworks, thus achieving both performance and integration goals.

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

Solution Approach 2:

The patent implements dynamic configuration options that allow the library to adapt its behavior based on the target software stack. Configuration parameters enable switching between different operational modes and integration strategies, making the solution flexible enough to integrate with various existing systems while maintaining optimized performance paths.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If kernel space implementation is used, then integration is improved, but scalability decreases and CPU utilization increases

Engineering Contradiction:
Improveintegration capabilityVSAvoidscalability
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the NVMeoF host functionality from the kernel space into a user-space library. This extraction removes the overhead and limitations of kernel module deployment, enabling easier scaling across multiple hosts and configurations while maintaining integration capabilities through standardized system calls and interfaces.

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If user space implementation is used, then scalability is improved and CPU utilization decreases, but integration with existing data path software stacks becomes challenging

Engineering Contradiction:
ImprovescalabilityVSAvoidintegration capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent replaces traditional mechanical kernel-module integration mechanisms with software-based library interfaces. This substitution allows user-space implementation to achieve seamless integration with existing data path software stacks through standardized APIs and configurable connection methods, eliminating the need for kernel space while maintaining compatibility.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11899935B2System and method for user space NVMe-over-RDMA host library
Publication Date: 2024.02.13 EMC IP HLDG CO LLC
  • US11899935B2 patent drawing
  • US11899935B2 patent drawing
  • US11899935B2 patent drawing

AI summary

A method, computer program product, and computer system for exposing, by a user block layer of a computing device, a storage device as a block device to an application associated with an IO request. A Non-Volatile Memory Express (NVMe) protocol layer of the computing device may expose a NVMe storage device associated with the IO request to the user block layer. A NVMe-over-RDMA layer of the computing device may create a NVMe RDMA queue for the IO request to be processed.