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 trafﬁc within a one-hop neighborhood, which addresses problems including false failure detection and recovery trafﬁc 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 trafﬁc within an one-hop neighborhood.