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.