Using one-sided RDMA reads to build a fast, CPU-efficient key-value store 论文
摘要
Recent technological trends indicate that future datacen-ter networks will incorporate High Performance Com-puting network features, such as ultra-low latency and CPU bypassing. How can these features be exploited in datacenter-scale systems infrastructure? In this pa-per, we explore the design of a distributed in-memory key-value store called Pilaf that takes advantage of Re-mote Direct Memory Access to achieve high perfor-mance with low CPU overhead. In Pilaf, clients directly read from the server’s mem-ory 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 in-consistent 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. 1