Design Guidelines for High Performance RDMA Systems
Anuj Kalia, Michael Kaminsky, and David G. Andersen
Modern RDMA hardware offers the potential for exceptional performance, but achieving this performance is challenging. Directly mapping an application’s low-level reads and writes to RDMA primitives is often suboptimal, and design choices, including which RDMA operations to use and how to use them, significantly affect observed performance. We lay out guidelines that can be used by system designers to navigate the RDMA design space. Our guidelines emphasize paying attention to low-level details such as individual RDMA packets, PCIe transactions, and NIC architecture. We present two case studies—a key-value store and a networked sequencer—demonstrating the effectiveness of these guidelines.