RAMCube: Exploiting Network Proximity for RAM-Based Key-Value Store

RAMCube is a datacenter oriented design for RAM-based key-value store that supports thousands or tens of thousands of servers to offer up to hundreds of terabytes of RAM storage. Here's the PDF Paper describing the system and here's a video of the presentation given at HotCloud.

The big idea is: RAMCube exploits the proximity of a BCube network to construct a symmetric MultiRing structure, restricting all failure detection and recovery traffic within a one-hop neighborhood, which addresses problems including false failure detection and recovery traffic congestion. In addition, RAMCube leverages BCube’s multiple paths between any pairs of servers to handle switch failures.

A few notes:

  • 75% of Facebook data is stored in memcache.
  • RAM is 1000 time faster than disk
  • RAM is used in caches, but this increases application complexity as applications are responsible for cache consistency.
  • Under a high work load a 1% cache miss rate can lead to a 10x performance penalty.
  • So store data directly in RAM instead of using a cache. 
  • Storing all data in RAM requires replication to multiple nodes for safety, which brings in datacenter networking issues.
  • The unhappy reality of datacenter networks must be considered to maximize the benefits of RAM.
    • False failure detection. It's difficult to quickly tell temporary network problems from real node failures.
    • Given the high levels of traffic fast failure recovery is difficult.
  • Utilizes the global topology information of BCube and leverage network proximity to restrict all failure detection and recovery traffic within an one-hop neighborhood.