Collaborators:
- Andrei Valasiuk (avalasiuk3)
- Timothy Smith (tsmith484)
In this project, a Paxos protocol was implemented to provide a fault-tolerant KeyValue store. The KeyValue store inherited the behavior from Project 2 and provided At Most Once semantics. The Paxos servers take part in the election of a distinguished proposer, a Leader, based on ballots to reduce the number of round trips and the contention over a Log slot. The communication among Paxos nodes takes place using Proposal Requests and Responses (P2A and P2B) and Heartbeat messages probing the Leader and Followers state. Paxos servers monitor the state of the key parties of the protocol and can make decisions about the view change amid failures and network partitions to ensure liveness. The implemented system guarantees the linearizability of the commands and the consistency of the data stored in the Paxos nodes.