SurfStore
· Graduate Course Project, UC San Diego Distributed Systems Consensus
A fault-tolerant cloud file store built on the RAFT consensus protocol.
Getting people to agree on something is hard. Getting machines connected over an asynchronous network to agree is harder. RAFT is an easy-to-understand consensus protocol that uses leader election and log replication to reach agreement.
In this project I built SurfStore, a collaborative, fault-tolerant cloud file store. File contents are split into chunks held by a BlockStore, while a replicated MetadataStore maps filenames to blocks. The MetadataStore uses RAFT leader election and log replication to keep a consistent state across servers and survive failures, with versioning and first-write-wins semantics to resolve conflicting updates.