-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
29 lines (21 loc) · 974 Bytes
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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