Mirrored RDMA Ring Buffers for Hardware-Agnostic Flow Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional flow control mechanisms for remote direct memory access (RDMA) communications are inefficient and not universally applicable across different network interface hardware, leading to data fragmentation and inefficiencies due to the reliance on homogenous environments and equally sized buffers, which can result in unnecessary filler data transmission.

Innovation Solution

The implementation of ring buffers on both sending and receiving computing devices, where a send ring buffer on the sending device and a receive ring buffer on the receiving device mirror each other, using write and trailing edge pointers to manage message transmission and storage, allowing for efficient data exchange without additional copies and filler data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional flow control mechanisms are used, then coordination between network interface hardware is achieved, but the mechanisms are not universal across different types of network interface hardware

Engineering Contradiction:
Improvecompatibility across network interface hardwareVSAvoidflow control mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal flow control mechanism using ring buffers and doorbell rings that can operate across heterogeneous network interface hardware. The send ring buffer and receive ring buffer provide a standardized interface that works with different network interface card types, eliminating the need for hardware-specific flow control implementations.

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

2Productivity

If equivalently sized buffers are used for flow control, then buffer management is simplified, but data fragmentation occurs and filler data must be transmitted

Engineering Contradiction:
Improvedata transmission efficiencyVSAvoidfiller data transmission
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent uses dynamic buffer management where the send ring buffer and receive ring buffer can accommodate variable-sized data messages. The write pointer and read pointer track the actual data boundaries within the buffers, allowing efficient transmission of messages of different sizes without requiring filler data to fill fixed buffer boundaries.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If multiple copies of data are made during transmission, then data is made accessible to network interface hardware and receiving processes, but communication efficiency is reduced

Engineering Contradiction:
Improvedata accessibilityVSAvoidcommunication efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent strategically minimizes data copying by using ring buffers that allow the network interface hardware to read directly from the send ring buffer and writing processes to write directly to the receive ring buffer. This direct memory access approach reduces the number of copy operations compared to traditional methods where data must be copied to intermediate buffers at both sending and receiving ends.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP3542276B1Flow control in remote direct memory access data communications with mirroring of ring buffers
Publication Date: 2021.10.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3542276B1 patent drawingFigure 1
  • EP3542276B1 patent drawingFigure 2
  • EP3542276B1 patent drawingFigure 3

AI summary

Two computing devices utilizing remote direct memory access establish a send ring buffer on a sending computer and a receive ring buffer on a receiving computer that mirror one another. A message is copied into the ring buffer on the sending computer and a write edge pointer is updated to identify its end. The message is copied, by the sending computer, from its ring buffer into a ring buffer on the receiving computer. A process executing thereon periodically checks, at its write edge pointer, and, upon detecting the new message's header, it updates the location identified by the write edge pointer. Once the new message is copied out of the ring buffer at the receiving computer, a trailing edge pointer is updated and a process executing at the sending computer monitors the trailing edge pointer of the receiving computer and updates its own trailing edge pointer accordingly.