RDMA Shared Memory Segment for Distributed Storage I/O
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.