Deep Dive: etcd
summary
etcd uses the Raft algorithm (Go implementation) to replicate a log across a cluster so a 5-node cluster needs a quorum of 3; CockroachDB reuses etcd Raft and TiKV ported it to Rust. The raft package intentionally omits network transport and persistent storage, exposing a Ready output with committed entries that the embedding process must save, send, and apply. Code centers on a Step(state,message) state machine, a Propose->Append->Replicate->Commit lifecycle, and recent additions include learners and work toward joint membership reconfiguration.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 1:03Agenda
- 1:41Raft Recap
- 3:22The Problem
- 6:37Leader Election
- 7:51Leader Log Management
- 10:19Raft
- 13:05Design philosophy
- 14:34State machine
- 17:11Raft output
- 19:27KBstore
- 19:37Request
- 19:55Proposed
- 21:07Source code
- 23:15Wrap package
- 23:31Leaders
- 27:40Graph
- 27:52Raft Package
- 30:14Ongoing efforts
- 31:47Fun
- 35:14Negotiation
- 36:37Twitter
- 36:56Movement
related talks
40mDeep Dive: etcd
21mUsing Raft in Rust
41mThe Raft Consensus Algorithm
42metcd: distributed locking and service discovery
37mUnderstanding Distributed Consensus in etcd and Kubernetes - Laura Frank, CloudBees
47mDistributed Systems: When Democracy and Computer Science Come Together
41mConsistent, Distributed Elixir
46mEtcd 101: The Parts They Don't Teach You
