> For the complete documentation index, see [llms.txt](https://sliu583.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sliu583.gitbook.io/blog/specific-work/seminar-and-talk/reading-groups/db-reading-group/cliquemap-productionizing-an-rma-based-distributed-caching-system.md).

# CliqueMap: Productionizing an RMA-Based Distributed Caching System

https\://dl.acm.org/doi/pdf/10.1145/3452296.3472934

#### Basics&#x20;

* Caching: distributed caching&#x20;
  * Hierarchy structure&#x20;
  * Distributed caching&#x20;
    * At the layer of application&#x20;
* RPC&#x20;
  * Remote procedure call: machines in distributed system to talk with each other&#x20;
  * GRPC: protocol buffers
  * Lesser restrictions , ease of programming&#x20;
* RMA / RDMA
  * Remote memory access&#x20;
  * Offload the code execution path from CPU to hardware or software NIC&#x20;
    * Restrictions with respect to size of memory that can be accessed&#x20;
  * Primitives are not quite easy to use for programmers&#x20;

#### Intro / Summary&#x20;

* In-memory KV caching / serving systems are crucial building blocks of user-facing services throughout the industry (i.e., Twemcache \[OSDI20], CacheLib \[OSDI20])
* Remote memory access (RMA)
  * Benefits: performance / efficiency benefits&#x20;
  * Downsides: limited programmability / narrow primitives&#x20;
  * Production challenges&#x20;
    * Deliver high availability and low cost
    * Balance CPU- and RAM-efficiency
    * Evolving the system over time&#x20;
    * Multi-language serving ecosystems&#x20;
    * Navigating heterogenous datacenters&#x20;
* How do we productionize an RMA-based distributed caching system?
  * Less compute + latency benefits (10s of ms)&#x20;
  * Throughput? different customers have different challenges

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FU5sUQ2RcT9hekY2TQEQq%2Fimage.png?alt=media\&token=bf99b8d3-82f9-4a6d-96f8-4e0d32a91564)

* Replication: same piece of data&#x20;
  * Aware of the topology&#x20;
* Lookup: RMA (accelerate)
* RPC: mutations, and other metadata management&#x20;
  * Extensibility and ease of programming&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FWVwwJz8WCwTd9nDQFj0n%2Fimage.png?alt=media\&token=488dbf9e-2216-4b0b-8742-76117b972a56)
