RDMA Shared Memory Segment for Distributed Storage I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional distributed storage systems using RDMA perform multiple memory allocations and data copies, leading to increased latency and performance degradation due to multiple RDMA data transfers and buffer allocations.

Innovation Solution

A computer-implemented method and system that utilize a shared memory segment between the operating system and user processes in a distributed storage node, registered for RDMA access with a target storage node, to perform I/O operations with zero data copy operations and optimal memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple RDMA data transfers and buffer allocations are performed at each intermediary device, then data transfer between client device and destination storage node can be completed, but latency increases and performance degrades

Engineering Contradiction:
Improvedata transfer performanceVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple buffer allocations into a single shared memory segment that is reused across multiple RDMA operations. Instead of allocating new buffers for each data transfer, the system reuses the same shared memory segment, thereby reducing the number of allocation operations and associated latency while maintaining continuous data transfer capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary registration of the shared memory segment with the RDMA subsystem before data transfers begin. This pre-registration ensures that the memory segment is ready for immediate RDMA access without requiring dynamic allocation during data transfer operations, thus reducing latency and improving overall performance.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple buffer allocations are performed at each intermediary device, then data can be transferred through the network, but device complexity and processing overhead increase

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidbuffer allocation management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines multiple buffer management operations into a single shared memory segment that serves all RDMA data transfers. This consolidation eliminates the need for separate buffer allocation and management logic for each transfer, thereby reducing device complexity while preserving full data transfer capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared memory segment serves multiple functions: it acts as a buffer for RDMA data transfers, a reusable memory resource across multiple operations, and a simplified management structure that replaces complex per-transfer buffer allocation logic. This multi-functionality reduces both complexity and processing overhead.

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

Data Source

PatentEP3900308B1Input/output processing in a distributed storage node with rdma
Publication Date: 2025.06.11 HUAWEI TECH CO LTD
  • EP3900308B1 patent drawingFigure 1
  • EP3900308B1 patent drawingFigure 2
  • EP3900308B1 patent drawingFigure 3A

AI summary

A computer- implemented method for remote direct memory access (RDMA) by a distributed storage node includes receiving a request for an input/output (I/O) process associated with data. In response to the request, a memory segment shared between the operating system and a user process is allocated using an operating system driver of the node. The user process includes an I/O stack for processing the request. The shared memory segment includes a context memory portion storing context information associated with the I/O stack, a header memory portion storing header information for the I/O process, and a data memory portion for storing the data. The shared memory segment is registered for RDMA access with a target storage node. An RDMA transfer is performed between the shared memory segment and the target node to complete the I/O process. The shared memory segment is deallocated upon completion of the RDMA transfer.