Tutorial Summary: Paxos Explained from Scratch
Paxos is a flexible and fault tolerant protocol for solving the consensus problem, where participants in a distributed system need to agree on a common value. However, Paxos is reputed for being difficult to understand. This tutorial aims to address this difficulty by visualizing Paxos in a completely new way. Starting from a naive solution and strong assumptions, Paxos is derived in a step-wise fashion. In each step, minimal changes are made to the solution and assumptions, aimed at understanding why the solution fails. In this manner, a correct solution that corresponds to Paxos is eventually reached.
KeywordsFault Tolerance Failure Detection Client Request Round Number Network Partition
Unable to display preview. Download preview PDF.
- 2.Lamport, L.: Paxos made simple. ACM SIGACT News 32(4), 18–25 (2001)Google Scholar
- 3.Burrows, M.: The chubby lock service for loosely-coupled distributed systems. In: Proc. OSDI, pp. 335–350 (2006)Google Scholar
- 4.Hunt, P., Konar, M., Junqueira, F.P., Reed, B.: Zookeeper: wait-free coordination for internet-scale systems. In: Proc. USENIX ATC (2010)Google Scholar
- 7.Mao, Y., Junqueira, F.P., Marzullo, K.: Mencius: building efficient replicated state machines for wans. In: Proc. OSDI, pp. 369–384 (2008)Google Scholar
- 8.Meling, H., Marzullo, K., Mei, A.: When you don’t trust clients: Byzantine proposer fast paxos. In: Proc. ICDCS, pp. 193–202 (2012)Google Scholar
- 10.Ongaro, D., Ousterhout, J.: In search of an understandable consensus algorithm. Technical report, Stanford University (2013)Google Scholar
- 11.Chandra, T.D., Griesemer, R., Redstone, J.: Paxos made live: an engineering perspective. In: Proc. PODC, pp. 398–407 (2007)Google Scholar
- 13.van Renesse, R.: Paxos made moderately complex. Technical report, Cornell University (2011)Google Scholar