LogCabin
Intro
LogCabin is a distributed system that provides a small amount of highly replicated, consistent storage. It is a reliable place for other distributed systems to store their core metadata and is helpful in solving cluster management issues.
We've written a paper about the Raft consensus algorithm which LogCabin uses internally: read it here (PDF).
Source code
The source code is here: https://github.com/logcabin/logcabin
Bug tracker
Please report bugs and feature requests to https://github.com/logcabin/logcabin/issues . You'll need a github account (free) to submit new issues.
Old Topics
Warning: these are design notes from initial stages of LogCabin and are are probably not relevant any longer.
Other Raft Implementations
This information has moved to the Raft web page: http://raftconsensus.github.io
Related work
Chubby (Google)
The Chubby lock service for loosely-coupled distributed systems (OSDI '06)
Paxos Made Live - An Engineering Perspective (PODC '07)
ZooKeeper (Yahoo!, Apache)
ZooKeeper: Wait-free coordination for Internet-scale systems (USENIX '10)
Zab: High-performance broadcast for primary-backup systems (DSN '11)
Doozer (Heroku)
http://xph.us/2011/04/13/introducing-doozer.html
Paxos
Paxos Made Simple (PODC '01)
See also Paxos Made Live under the Chubby heading.
Paxos Replicated State Machines as the Basis of a High-Performance Data Store, video (NSDI '11)
Viewstamped Replication
Paxos Made Practical (not published, '07). Note: despite the title, this is actually about Viewstamped Replication, not Paxos.
Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems (PODC '88)