[Article talks about difference between one sided and two sided rdma]https://forums.developer.nvidia.com/t/comparasion-of-one-sided-vs-two-sided-operations/207183
What is single-sided RDMA
Single-sided RDMA (Remote Direct Memory Access) refers to a method where one machine can directly access the memory of another machine without involving the remote CPU. This is achieved through RDMA’s one-sided verbs, which allow for operations like read and write to be performed directly on the remote memory.
Key Features of Single-Sided RDMA:
- Low Latency: Provides ultra-low latency network communication.
- CPU Bypass: Bypasses the remote CPU, reducing overhead and improving efficiency.
- Direct Memory Access: Enables direct access to remote memory, which is particularly useful in distributed systems and databases.
Applications:
- Distributed Databases: Used in disaggregated database management systems to improve performance and scalability.
- Key-Value Stores: Utilized in high-performance key-value stores to achieve low latency and high throughput.
Single-sided RDMA is a powerful tool for building efficient and scalable distributed systems by leveraging direct memory access and minimizing CPU involvement.
What is two-sided RDMA
Yes, there is a concept known as two-sided RDMA operations. While single-sided RDMA operations involve one machine directly accessing the memory of another without involving the remote CPU, two-sided RDMA operations require both the sender and receiver to participate in the communication.
Key Features of Two-Sided RDMA:
- Send/Receive Operations: In two-sided RDMA, the sender posts a send work request, and the receiver posts a receive work request. The data transfer occurs when the send request matches the receive request.
- CPU Involvement: Both the sender’s and receiver’s CPUs are involved in the communication process, which can add some overhead compared to single-sided operations.
- Use Cases: Two-sided RDMA is often used in scenarios where synchronization between the sender and receiver is necessary, such as in certain types of distributed transactions and message passing.
Comparison with Single-Sided RDMA:
- Performance: Single-sided RDMA generally offers lower latency and higher throughput because it bypasses the remote CPU. However, two-sided RDMA can be more suitable for applications requiring tight synchronization and coordination between nodes.
- Complexity: Two-sided RDMA operations can be more complex to implement due to the need for both sides to coordinate their actions.
You can find more detailed information and comparisons between one-sided and two-sided RDMA operations here.