Remote Direct Memory Access (RDMA) enables two or more computers to use each others' main memory via direct memory access. As there is no CPU, cache, or context switching overhead needed to perform the transfer, and transfers continue in parallel with other system operations. This is particularly useful in applications where high throughput, low latency networking is needed such as in massively parallel Linux clusters. The most common RDMA implementation is over InfiniBand. Although RDMA over InfiniBand is technologically superior to most alternatives, it faces an uncertain commercial future.
High latencies negatively impact potential bandwidth. When latencies are high, protocol overhead overwhelms the work needed to deliver data. High latencies create a bottleneck, preventing full utilization of the network, thus decreasing network bandwidth. Latency reduces overall performance by limiting how fast an application can get the data it needs and limiting the overall size and scalability of a cluster by reducing the number of messages that can be effectively transferred.
Once a connection has been established, RDMA enables the movement of data from the memory of one server directly into the memory of another server without involving the operating system of either node. RDMA supports zero-copy networking by enabling the network adapter to transfer data directly to or from application memory, eliminating the need to copy data between application memory and the data buffers in the operating system. When an application performs an RDMA Read or Write request, the application data is delivered directly to the network, reducing latency and enabling fast message transfer.
RDMA’s acceptance is limited by the need to install a different networking infrastructure. New standards enable Ethernet RDMA implemention at the physical layer and TCP/IP as the transport, combining the performance and latency advantages of RDMA with a low-cost, standards-based solution. The RDMA Consortium and the DAT Collaborative[1] have played key roles in the development of RDMA protocols and APIs for consideration by standards groups such as the Internet Engineering Task Force and the Interconnect Software Consortium.[2] Software vendors such as Oracle Corporation support these APIs in their latest products, and network adapters that implement RDMA over Ethernet are being developed.