Ring Buffer Streaming Between Devices Without Data-Size Signaling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing RDMA-based communication systems struggle to support streaming communication efficiently, leading to high latency and reduced throughput due to the need for specifying data sizes and maintaining extensive context information, which limits scalability and concurrency.
Innovation Solution
Implementing dedicated ring buffers in the memory of devices for data streams, allowing applications to write data without specifying sizes, and using interface devices that operate in a stateless mode to transmit data based on updated pointers, thereby eliminating the need for status information storage and computation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If message-based communication is used with RDMA, then high throughput and low latency are achieved, but the flexibility to transmit data without knowing data size in advance is lost
Solution Approach 1:
The patent segments the communication protocol into two independent layers: the RDMA layer handles high-speed data transmission while the application layer handles streaming semantics. This is achieved by introducing ring buffers that separate the data transmission mechanism from the data size specification, allowing each layer to operate independently without compromising the other's performance or functionality
Solution Approach 2:
The patent introduces ring buffers as intermediary structures between the sender and receiver. These ring buffers act as mediators that decouple the data transmission process from the data size information, allowing data to be transmitted continuously while size information is handled separately through pointer updates, thus enabling streaming communication over RDMA without sacrificing throughput
2Adaptability or versatility
If streaming communication is implemented on top of RDMA, then data transmission flexibility is improved, but RDMA hardware performance is degraded
Solution Approach 1:
The patent makes the communication interface dynamic by allowing the data size parameter to change continuously through pointer updates rather than being fixed in advance. The ring buffer structure allows the write pointer to advance dynamically as data is transmitted, enabling flexible streaming communication while the underlying RDMA hardware continues to operate at full speed with fixed-size packet transfers
Solution Approach 2:
The ring buffer serves as an intermediary that translates flexible streaming operations into fixed-size RDMA packet transfers. By buffering data in the ring structure and using pointer arithmetic to track progress, the system maintains RDMA hardware performance while providing streaming communication semantics to the application layer
3Productivity
If discrete packets with pre-known sizes are used, then transmission efficiency is improved, but the convenience of continuous data stream transmission is lost
Solution Approach 1:
The ring buffer structure enables self-service streaming communication by automatically managing data segmentation and transmission. The write pointer advancement automatically triggers the next RDMA packet transmission without requiring application intervention to specify data sizes, making continuous data stream transmission as convenient as discrete packet transmission while maintaining high transmission efficiency
Data Source
AI summary
In accordance with implementations of the subject matter described herein, there is provided a solution for streaming communication between devices. In this solution, a memory of a first device comprising a ring buffer is allocated to be dedicated for storing a data stream of an application to be transmitted to a second electronic device. The application of the first device writes data to be transmitted into the ring buffer, to form a portion of the first data stream, and a write pointer of the ring buffer is thus updated. A portion of data is read based on a source memory address from the ring buffer via the interface device. The interface device also transmits the data portion to a second device. The read data portion is stored in a dedicated ring buffer of the memory. In accordance with the solution, an efficient streaming communication interface is provided between devices.


