Skip to content

Repository files navigation

consensus-fun
This is a sample implementation of some distributed consensus protocols.
Currently implemented:
* Two-phase commit
* Paxos
In both of these tests, the nodes vote on which node should be the "leader" of
the cluster. Nodes are represented by operating system threads. One node
sending a message to another node is represented by putting the message into a
queue and posting a semaphore.
Nodes can send messages with a delay value. This means that the messages will
be delivered after a timeout period has elapsed. For example, a node could
send a delayed message to itself in order to implement a timeout. Nodes can
also put delays on messages they send to other nodes in order to stress-test
the implementation a bit.
TODO:
* stress-test implementation by injecting message delays
* model and test node failure for Paxos
This is licensed under the Apache License 2.0. See LICENSE for details.
Have fun.
Colin Patrick McCabe
cmccabe@alumni.cmu.edu

About

Sample implementations of distributed consensus protocols

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages