CORFU: A Shared Log Design for Flash Clusters

  • Mahesh Balakrishnan ,
  • Dahlia Malkhi ,
  • Vijayan Prabhakaran ,
  • Ted Wobber ,
  • Michael Wei ,
  • John Davis

9th USENIX Symposium on Networked Systems Design and Implementation (NSDI '12) |

Published by USENIX

CORFU–which stands for Clusters of Redundant Flash Units, and also for an island near Paxos in Greece–organizes a cluster of flash devices as a single, shared log that can be accessed concurrently by multiple clients over the network. The CORFU shared log makes it easy to build distributed applications that require strong consistency at high speeds, such as databases, transactional key-value stores, replicated state machines, and metadata services. CORFU can be viewed as a distributed SSD, providing advantages over conventional SSDs such as distributed wear-leveling, network locality, fault tolerance, incremental scalability and geo-distribution. A single CORFU instance can support up to 200K appends/sec, while reads scale linearly with cluster size. Importantly, CORFU is designed to work directly over network-attached flash devices, slashing cost, power consumption and latency by eliminating storage servers.