A local running, process-distributed KV store for learning purposes based on replica state machine(RSM) cluster which implements raft consensus algorithm in a fully asynchronous way.
Using netty's event-driven udp for async communication among nodes inside the cluster.
- CONSENSUS: BRIDGING THEORY AND PRACTICE
D Ongaro - 2014 - stanford.edu - In search of an understandable consensus algorithm.
D Ongaro, JK Ousterhout - USENIX Annual Technical Conference, 2014 - usenix.org - MIT PDOS 6.824 - Spring 2018
- Leader election/reelection (without restriction)
- Log replication
- Persisted states & recovery
- Safety
- Client interaction
- Log compaction
- Cluster membership changes
- Leadership transfer extension
[current node port] [other node ports ...]
e.g.
(node 0) 8080 8081 8082 8083 8084
(node 1) 8081 8080 8082 8083 8084
(node 2) 8082 8080 8081 8083 8084
(node 3) 8083 8080 8081 8082 8084
(node 4) 8084 8080 8081 8082 8083
Configuration will be auto loaded from resource path.
Specifying conf file in startup argument is currently not supported, for that using different configurations among nodes is not suggested.
Default conf: rafty-node.properties