Schedule

Course Schedule, Slides, and Homeworks

Week Topics Readings Slides Projects
1 Introduction. Class policy. Project Infrastructure. Networking refresh. Beej’s Guide, Why are Distributed Systems so Hard Intro
2 Introduction continued… Network refresh
3 Time in distributed systems (Lamport clocks, vector clocks, NTP). Global states and distributed snapshots. Failure detectors. Event Ordering Project 0
4 Consensus: synchronous systems, asynchronous systems, byzantine failures (including randomized solutions).
5 Process Groups: Leader election, membership, reliable multicast, virtual synchrony. Project 1
6 Distributed commit (2PC and 3PC)
7 Quorums. Paxos. Viewstamped replication. BFT. Project 2
6 continued…
9 Peer-to-peer overlays. Gossip protocols. Distributed Hash Tables Project 3
10 Application of distributed systems concepts to real systems
11 continued… Project 4
12 continued…
13 November Break
14 Class summary

Resources

C

Python

Java

Must-read articles in distributed systems.

  1. Why Do Computers Stop and What can be done about it? J. Gray. 1985.
  2. End to end arguments in System Design. Saltzer, Reed, Clark. TOCS 1990.
  3. Why do Internet services fail, and what can be done about it? 2003. D. Oppenheimer, A.Ganapathi and D. A. Patterson.
  4. Time, Clocks, and the Ordering of Events in a Distributed System, L. Lamport 1978, SIGOPS Hall of Fame.
  5. Virtual Time and Global States of Distributed Systems", Mattern, F. 1988.
  6. Distributed Snapshots: Determining Global States of Distributed Systems. K. M. Chandy and L. Lamport,, 1985, SIGOPS Hall of Fame.
  7. Unreliable Failure Detectors for Reliable Distributed Systems, T. Chandra and S. Toueg. , 1996.
  8. Knowledge and Common Knowledge in a Distributed Environment, J. Halpern and Y. Moses , E.W. Dijkstra Prize 2009.
  9. Impossibility of Distributed Consensus with One Faulty Process. M.J.Fischer, N.A.Lynch and M.S. Paterson. , 1983. E.W. Dijkstra Prize, 2001.
  10. The Byzantine Generals Problem, L. Lamport, R. Shostak, and M. Pease, 1982.
  11. Another advantage of free choice (Extended Abstract): Completely asynchronous agreement protocol. M. Ben-Or. 1983.
  12. Exploiting virtual synchrony in distributed systems. K. P. Birman and T. A. Joseph, 1987.
  13. Extended Virtual Synchrony, L. E. Moser, Y. Amir, P. M. Melliar-Smith, D. A. Agarwal,1994.
  14. Distributed Recovery, Bernstein, Goodman and Hadzilakos.
  15. Non-blocking Commit Protocols, D. Skeen.
  16. Determining the Last Process to Fail, D. Skeen.
  17. The State Machine Approach. F.B. Schneider. , SIGOPS Hall of Fame.
  18. Hypervisor-based Fault-Tolerance, T. Bressoud and F.B. Schneider
  19. A Survey of Rollback Recovery Protocols in Message Passing Systems, E. Elnozahy, L. Alvisi, Y.M.Wang, and D.B. Johnson.
  20. Paxos Made Simple, L. Lamport.
  21. The Part-Time Parliament L. Lamport , SIGOS Hall of Fame
  22. Paxos for System Builders, J. Kirsch and Y. Amir (the technical report) .
  23. Viewstamped Replication Revisited, B. Liskov and J. Cowling
  24. From Viewstamped replication to Byzantine replication. B Liskov.
  25. Bimodal Multicast, K.P. Birman, M. Hayden, O. Ozkasap, Z. Xiao, M. Budiu, and Y. Minsky
  26. Byzantine Quorum Systems, D. Malkhi and M. Reiter
  27. Practical Byzantine Fault-Tolerance, M. Castro and B. Liskov
  28. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications, Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, H. Balakrishnan, , 2001.
  29. Google File System. S, Ghemawat, H. Gobioff and S.-T. Leung. SOSP 2003.
  30. The Chubby Lock Service for Loosely-Coupled Distributed Systems. Mike Burrows, OSDI 2006 1, Bigtable: A Distributed Storage System for Structured Data. 2008. ACM Trans. Comput. Syst. 26, 2 (Jun. 2008), 1-26
  31. Spanner, Google’s globally distributed database. OSDI 2012.
  32. MapReduce: Simplified Data Processing on Large Clusters OSDI 2004
  33. Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center, NSDI 2011
  34. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing, NSDI 2012, best paper
  35. Apache Hadoop YARN: Yet Another Resource Negotiator SOCC 2013 (best paper)
  36. Distributed GraphLab: A Framework for Machine Learning and Data Mining in the Cloud, VLDB 2012
  37. Pregel: A System for Large-Scale Graph Processing, SIGMOD 2010
  38. TensorFlow: A System for Large-Scale Machine Learning OSDI 2016
  39. Hyperledger fabric: a distributed operating system for permissioned blockchains, EuroSys 2018.
  40. Scaling Distributed Machine Learning with the Parameter Server, OSDI 2014
  41. Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto
  42. Majority is not Enough: Bitcoin Mining is Vulnerable Ittay Eyal, and Emin Gün Sirer <>