Paxos lecture (Raft user study)
Diego Ongaro6 HN recommenders · recommended in 6 months, 2013-2024
114K views · 13 years ago · lecture · evergreen
John Ousterhout's slides-and-voiceover lecture on Paxos, made for the Raft user study comparing how students learn Raft and Paxos. It is a full introduction to the Paxos consensus algorithm.
Recommended as a clear, lucid way to learn Paxos and Multi-Paxos, ideally alongside the companion Raft video.
58:17Raft lecture (Raft user study)
Diego Ongaro
87K views • 13 years ago
1:19:35Lecture 1: Introduction
MIT 6.824: Distributed Systems
921K views • 6 years ago
34:52Liberating Distributed Consensus - Heidi Howard
Reactive Summit
7K views • 7 years ago
14:36Distributed Systems 1.1: Introduction
Martin Kleppmann
382K views • 6 years ago
46:15AWS re:Invent 2014 | (SPOT302) Under the Covers of AWS: Its Core Distributed Systems
Amazon Web Services
10K views • 11 years ago
57:39The Stellar Consensus Protocol | David Mazières | Talks at Google
Talks at Google
56K views • 10 years ago
51:27Google I/O 2012 - Go Concurrency Patterns
Google for Developers
894K views • 14 years ago
54:44Differential Synchronization
Google TechTalks
52K views • 17 years ago
43:39CRDTs and the Quest for Distributed Consistency
InfoQ
68K views • 8 years ago
1:10:23"Systems that run forever self-heal and scale" by Joe Armstrong (2013)
Strange Loop Conference
85K views • 5 years ago
53:14Mastering Chaos - A Netflix Guide to Microservices
InfoQ
2.3M views • 9 years ago
48:45Matrix 2.0 — How we're making Matrix go voom!
Matrixdotorg
16K views • 3 years ago
52:29"I See What You Mean" by Peter Alvaro
Strange Loop Conference
59K views • 11 years ago
56:19MINIX 3: a Modular, Self-Healing POSIX-compatible Operating System
FOSDEM
90K views • 16 years ago
1:22:45Building Software Systems At Google and Lessons Learned
Stanford
257K views • 15 years ago
35:15Solid Ground // Saša Jurić
EMPEX Conference
14K views • 9 years ago
40:20"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
55K views • 12 years ago
52:41Seattle Conference on Scalability: YouTube Scalability
Google TechTalks
30K views • 19 years ago
1:01:46GigCityElixir23 - Bryan Hunter
Groxio
10K views • 3 years ago
7:27Lamport on writing "Time, Clocks, and the Ordering of Events in a Distributed System"
Turing Awardee Clips
24K views • 6 years ago
7 comments from Hacker News
I recently took a Distributed Systems course, and I also thought it was very interesting and unexpected how in the most basic form of Paxos, there is no concept of node roles or hierarchy like leader/follower, master/replica, etc. The base case is that all nodes have the same replicated log, and are "writers" capable of initiating changes to the log. This youtube video was particularly helpful in learning about consensus algorithms, specifically Paxos/MultiPaxos: ▶ this video John Ousterhout (author of Raft) walks through Paxos/MultiPaxos as outlined by Leslie Lamport, and then talks about a series of optimizations to improve performance. One key optimization is transitioning from performing consensus on a single log-slot proposal, to the entire log-slot altogether, which mitigates failed consensus rounds, and is where concepts like leader nodes emerge. If your familiar with Raft and Paxos, while listening to these optimization applied to MultiPaxos, you can kind of notice it to begin to resemble Raft. The course I took was through Georgia Tech, but was largely based around a framework developed at the University of Washington called dslabs: link link It was super informative for my learning about the foundations of distributed systems, namely consensus algorithms. I'd highly recommend it for anyone interested in learning more. Although fair warning, the programming assignments were quite difficult and time consuming.
Raft is very similar to Multi-Paxos. These Raft and Paxos user studies comparing the "understandability" of the two protocols might be helpful: ▶ this video (Paxos), link (Raft). See also, comparison of various "Paxos" implementations: link
At least for paxos this is more or less the standard method of explaining it, see: ▶ this video In paxos's case the logic is very, very simple - it's just the reasons for the logic are difficult to sort out. So teaching it iteratively works very well, because you show how simpler versions fail.
IMO if you develop a good understanding of Paxos then learn TLA+ you'll know everything you need to work on production distributed systems. Learn about CRDTs too, just to see what eventually-consistent systems look like. The real core of distributed systems is less knowing specific algorithms and more knowing what makes the field so hard, what solutions are possible, and the limitations of those solutions. For learning Paxos I like this video: ▶ this video Implement it yourself in your language of choice. For TLA+ there's the Practical TLA+ textbook or Leslie Lamport's video lecture series: link
The first is a proof published in a paper that you can read. I recall the proof is for single decree paxos. In reality, you need multiple rounds. There are many subtle variations and I am not aware of a proof for that. Is an implementation correct? Frankly, that is a PhD thesis that is still to have been written. If you want to do a PhD and this topic burns inside you, go for it. Regarding consensus algorithm overview, no .. not that I know of. Here is a good video on Paxos: ▶ this video Enjoy my friend.
One of the most lucid explanations of the Raft Consensus Algorithm that I've ever seen is the one in John Ousterhout and Diego Ongaro's Raft User Study[0]. The 2 videos do an excellent job of explaining both the Paxos and Raft algorithms and the key differences between them. John's narration is extremely clear and the slides are very informative. Definitely recommended! Raft is a consensus algorithm designed to be easier to understand than Paxos. To measure Raft's understandability, we conducted an experimental study using CS students at two universities. We recorded a video lecture of Raft and another of Paxos, and created corresponding quizzes. This page makes our materials available for anyone interested. We think these are valuable resources for anyone learning consensus (whether Raft or Paxos or both). [0] - link Raft Video - link Paxos Video - ▶ this video
one other thing to keep in mind is that the underlying algorithms (zab and raft) provide different guarantees. for example, zookeeper/zab allows reading directly from followers with a guarantee to get at least a past value that won't be rolled back. this was one reason zookeer didn't use paxos: link in my understanding, raft doesn't allow reading directly from followers, because the follower logs may get repaired/rolled-back when a new leader is elected. (though i'm sure an implementation can tweak the protocol to provide this support.) that said, raft has a lot of interesting applications, and, in my opinion, is definitely more understandable than the many versions of paxos. (implementing zab yourself, at this point, would be a futile exercise.) i found the videos from the raft user study to be very well done (and easier to understand than even their paper): raft: ▶ this video paxos: link ...however, i think they did paxos a disadvantage by not just focusing on multi-paxos (which is probably the most common implementation). but, it's certainly fair to say that info about paxos is spread out far and wide...with perhaps too many knobs to turn and implementation-related details to fill in yourself. as a side note: i've just started implementing raft in a set of libraries (multiple languages) that will be open source - along with other protocols.