Distributed systems are a group of systems connected via a network, all working towards achieving a common goal. To achieve fault tolerance and reliability, all the systems should work towards achieving consensus. Paxos is the most widely used consensus algorithm since 2 or 3 decades, but the shift is now happening towards a new algorithm known as Raft. Raft is a consensus algorithm (paper published in the year 2014) which is easier to understand and works like Paxos in terms of fault tolerance and performance. Since Raft is new, there is a need for a tool that verifies systems built using the Raft algorithm. This project proposes the development of a tool that validates different key-value based implementations of Raft: Ckite, Libraft and Kayvee with each other, and compares the output to give a result if the implementations are correct or not. The validation is done based on various test cases that a distributed system is tested for.
Vishwanath, Deepthi, "Validating Key-value Based Implementations of the Raft Consensus Algorithm for Distributed Systems" (2018). Master's Projects. 631.