Raft (and a fault-tolerant key-value storage service) and Percolator implemented in Rust.
Based on PingCAP Talent Plan - Distributed System in Rust.
- Lab 2
- Part 2A: leader election
- Part 2B: log replication
- Part 2C: persistence
- Part 2D: log compaction
- Lab 3
- Part 3A: Key/value service without snapshots
- Part 3B: Key/value service with snapshots
- Percolator
At the end of 3B, I tried replace prost
with serde
for Raft snapshot serialization/deserialization. But for some reason this more than doubled CPU usage. I haven't figured out the cause, so I sticked with prost
.