An industrial-grade C++ implementation of RAFT consensus algorithm based on brpc, widely used inside Baidu to build highly-available distributed systems.
This project aimed at extending the original Paxos implementation specified by Lamport into a version with preemption. As part of this project I also added correctness testing to check that executions with both the original and the extended versions are correct. I measure the running times to learn a consensus value under varying values of 3 parameters: message loss rate, message delay, and wait time before a new round.User can configure the setup by passing arguments to the run.py file for various runs.