Paxos
In this project, you will build a web server that is made fault-tolerant using omnipaxos. The web server should be accessed via REST or gRPC and store some data that is accessed in a consistent manner. Furthermore, let each node maintain some statistics on the number of requests they have handled, and make the node with the most requests take over leadership when it passes a certain threshold.
- [Done] REST for client-server communication -> GET/POST store and
- [Done] Access data in a consistent manner -> Async tests + checked decided idx
- [Done] Key/Value
- [In Progress] Snapshot
- Node statistics -> state logs
- Leader with higher requests, threshold -> leader_priority
- [In Progress] Testing cases -> https://doc.rust-lang.org/book/ch11-01-writing-tests.html
- [In Progress] Fault-tolerant -> Fail recovery tutorial
- [In Progress] Report
Optional
- Add Post snapshot
- Add delete
- Add CAS
TODO:
- Update storage ro have multiple instances to simulate replication
- Read majority