Using one-sided RDMA reads to build a fast, CPU-efficient key-value store

Christopher Mitchell, Yifeng Geng, Jinyang Li

2013 · 307 citations · 21 references

Concepts

TL;DR

Future datacenter networks are expected to include HPC features such as ultra‑low latency and CPU bypassing. The paper investigates how to leverage these features to build a datacenter‑scale key‑value store. Pilaf uses RDMA reads for get operations, server‑side handling of puts, and self‑verifying data structures to detect read‑write races without coordination, achieving high performance with low CPU overhead. Experiments show Pilaf delivers over 1.3 million ops/s (90 % gets) on a single core, far surpassing Memcached and Redis while consuming minimal CPU resources.

Abstract

Recent technological trends indicate that future datacenter networks will incorporate High Performance Computing network features, such as ultra-low latency and CPU bypassing. How can these features be exploited in datacenter-scale systems infrastructure? In this paper, we explore the design of a distributed in-memory key-value store called Pilaf that takes advantage of Remote Direct Memory Access to achieve high performance with low CPU overhead.\n\n\nIn Pilaf, clients directly read from the server's memory via RDMA to perform gets, which commonly dominate key-value store workloads. By contrast, put operations are serviced by the server to simplify the task of synchronizing memory accesses. To detect inconsistent RDMA reads with concurrent CPU memory modifications, we introduce the notion of self-verifying data structures that can detect read-write races without client-server coordination. Our experiments show that Pilaf achieves low latency and high throughput while consuming few CPU resources. Specifically, Pilaf can surpass 1.3 million ops/sec (90% gets) using a single CPU core compared with 55K for Memcached and 59K for Redis.

References

21