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.

Cleaning Tombstones

Comparing Replicas

Linearizability

Compaction

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)

http://zookeeper.apache.org/

Doozer (Heroku)

http://xph.us/2011/04/13/introducing-doozer.html

https://github.com/ha/doozerd

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 Storevideo (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)