Abstract | ||
---|---|---|
ABSTRACTDistributed in-memory caching is a key component of modern Internet services. Such caches are often accessed via remote procedure call (RPC), as RPC frameworks provide rich support for productionization, including protocol versioning, memory efficiency, auto-scaling, and hitless upgrades. However, full-featured RPC limits performance and scalability as it incurs high latencies and CPU overheads. Remote Memory Access (RMA) offers a promising alternative, but meeting productionization requirements can be a significant challenge with RMA-based systems due to limited programmability and narrow RMA primitives. This paper describes the design, implementation, and experience derived from CliqueMap, a hybrid RMA/RPC caching system. CliqueMap has been in production use in Google's datacenters for over three years, currently serves more than 1PB of DRAM, and underlies several end-user visible services. CliqueMap makes use of performant and efficient RMAs on the critical serving path and judiciously applies RPCs toward other functionality. The design embraces lightweight replication, client-based quoruming, self-validating server responses, per-operation client-side retries, and co-design with the network layers. These foci lead to a system resilient to the rigors of production and frequent post deployment evolution. |
Year | DOI | Venue |
---|---|---|
2021 | 10.1145/3452296.3472934 | COMM |
Keywords | DocType | Citations |
Remote Memory Access, Remote Procedure Call, Key-Value Caching System | Conference | 0 |
PageRank | References | Authors |
0.34 | 0 | 10 |
Name | Order | Citations | PageRank |
---|---|---|---|
Arjun Singhvi | 1 | 18 | 3.83 |
Aditya Akella | 2 | 4138 | 268.44 |
Maggie Anderson | 3 | 0 | 0.34 |
Rob Cauble | 4 | 0 | 0.34 |
Harshad Deshmukh | 5 | 0 | 0.34 |
Dan Gibson | 6 | 10 | 0.89 |
Milo M. K. Martin | 7 | 2677 | 125.22 |
Amanda Strominger | 8 | 0 | 0.34 |
Thomas F. Wenisch | 9 | 2112 | 105.25 |
Amin Vahdat | 10 | 10369 | 842.39 |