RDMA Read Destination Buffers Mapped to Single Representation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current RDMA systems face inefficiencies in handling non-contiguous RDMA Read destination buffers, resulting in increased overhead, larger link utilization, longer latency, and a more complex protocol due to the requirement of multiple RDMA read operations for each buffer element.
Innovation Solution
The implementation of a 'Shadow' Steering Tag (SSTag) that maps a set of memory buffers onto a single representation, allowing for the identification and assignment of data to multiple non-contiguous buffers with a single read request, thereby reducing the need for multiple RDMA read operations and enhancing data transfer efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple RDMA read operations are used to handle non-contiguous destination buffers, then data can be transferred to each buffer element, but overhead increases, link utilization increases, latency increases, and protocol complexity increases
Solution Approach 1:
The patent combines multiple RDMA read operations into a single unified operation by introducing a scatter/gather list that describes multiple destination buffers. The RNIC uses a single steering tag (STag) pointing to a descriptor ring buffer that contains information about multiple destination buffers, allowing data to be transferred to multiple non-contiguous buffers in one operation rather than requiring separate RDMA reads for each buffer.
Solution Approach 2:
The patent introduces an intermediary data structure (scatter/gather list in the descriptor ring buffer) that mediates between the single RDMA read operation and multiple destination buffers. This intermediary structure allows the RNIC to interpret a single read operation as targeting multiple buffers, thereby reducing protocol complexity while maintaining the ability to handle non-contiguous buffers.
2Reliability
If multiple RDMA read operations are used for non-contiguous buffers, then complete buffer coverage is achieved, but overhead and latency increase
Solution Approach 1:
The patent merges multiple sequential RDMA read operations into a single parallel operation by using a scatter/gather list that describes all destination buffers upfront. The RNIC processes all buffer descriptors in the list during one read operation, ensuring complete buffer coverage while eliminating the sequential overhead and latency associated with multiple separate operations.
3Productivity
If a single RDMA read operation is used, then overhead and latency are reduced, but the ability to handle non-contiguous destination buffers is limited
Solution Approach 1:
The patent introduces a scatter/gather list as an intermediary data structure that enables a single RDMA read operation to handle non-contiguous destination buffers. This list, stored in the descriptor ring buffer, contains descriptors for multiple buffers with their respective addresses and lengths, allowing the RNIC to interpret the single read operation as targeting multiple non-contiguous buffers, thus maintaining both efficiency and versatility.
Solution Approach 2:
The patent segments the destination buffer space into multiple discrete buffer elements described in the scatter/gather list. Each buffer element is described by a descriptor containing its address and length, allowing the system to handle non-contiguous buffers while using a single unified RDMA read operation. This segmentation approach maintains adaptability for non-contiguous buffers while achieving the efficiency of a single operation.
Data Source
AI summary
A computer-implemented method, system, and article of manufacture for data communication between a requester and a responder in a remote direct memory access (RDMA) network, where each of the requester and the responder is an RDMA-enabled host of the network. The method includes: sending a request for the responder to provide data, where the request includes a mapped steering tag that is obtained by mapping a set of memory buffers of the requester onto a single representation that allows for identifying each of the memory buffers of the set; and receiving the requested data together with the mapped steering tag and assigning the data being received to the memory buffers of the set consistently with the mapping.


