Implementing Raft: Part 3 - Persistence and Optimizations - Eli Bendersky's website
This is Part 3 in a series of posts describing the Raft distributed consensus algorithm and its complete implementation in Go. Here is a list of posts in the series: In this part we'll complete our basic implementation of Raft, by adding persistence and some optimizations. All the code for this part is located in this directory. The goal of a consensus algorithm like Raft is to create a system that has higher availability than its parts by replicating a task across isolated servers. So far, we've been focusing on the fault scenario of network partitions, where some servers in the cluster become disconnected from others (or from clients). Another mode of failure is crashes, wherein a server stops working and restarts. While for other servers it appears like a network partition - a server got temporarily disconnected, for the crashed server itself the situation is quite different because by restarting all its volatile memory state is lost. Precisely for this reason, Figure 2 in the Raft
This is Part 3 in a series of posts describing the Raft distributed consensus algorithm and its complete implementation in Go. Here is a list of posts in the series: Part 0: Introduction Part 1: Elections Part 2: Commands and log replication Part 3: Persistence and optimizations (this post) Part 4: Key/Value database Part 5: Exactly-once delivery In this part we'll complete our basic implementation of Raft, by adding persistence and some optimizations. All the code for this part is located in this directory . Persistence The goal of a consensus algorithm like Raft is to create a system that ha
Explore this link on the map →related reading
- Students' Guide to Raft :: Jon Gjengsetthesquareplanet.com
- 6.5840 Lab 3: Raftpdos.csail.mit.edu
- Raft Consensus Algorithmraft.github.io
- Building a BFT JSON CRDTjzhao.xyz
- A Distributed Systems Reading Listferd.ca
- Aeron Cluster - The Aeron® Filestheaeronfiles.com
- 6.5840 Schedule: Spring 2026pdos.csail.mit.edu
- Let’s take a crack at understanding distributed consensuspreethikasireddy.com
- DBMS Musings: It’s Time to Move on from Two Phase Commitdbmsmusings.blogspot.com
- CRDT optimizationsbartoszsypytkowski.com
- What is the difference between PBFT, Tendermint, HotStuff, and HotStuff-2?decentralizedthoughts.github.io
- https://pdos.csail.mit.edu/6.824/notes/l-farm.txtpdos.csail.mit.edu