This schedule and syllabus is preliminary and subject to change.

Lectures and related materials are licensed for use under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License, attributed to Michael Freedman, Kyle Jamieson, and Wyatt Lloyd, Princeton University.

Creative Commons License

Date Topics Slides Readings
Mon 1/29 Distributed Systems Intro (Freedman) [pdf] [pptx]
Wed 1/31 Course Overview (Lloyd) [pdf] [pptx]
Thu or Fr Go systems programming [pdf] [pptx] [syntax] [exercises] [soln]
Mon 2/5 Network communication and Remote Procedure Calls (Freedman) [pdf] [pptx]
Wed 2/7 Intro to Failure: RPCs (Freedman) [pdf] [pptx]
Thu or Fri Concurrency in Go, MapReduce [pdf] [pptx]
Fri 2/9 Assignment 1-1 (Go) due at 11:59pm
Mon 2/12 Time and Logical Clocks 1 (Lloyd) [pdf] [pptx] Suggested reading: Time, Clocks...
Tues 2/13 Assignment 1-2 (Simple MapReduce) due at 11:59pm
Wed 2/14 Time and Logical Clocks 2 (Lloyd) [pdf] [pptx]
Thu or Fri RPCs in Go [pdf] [pptx]
Fri 2/16 Assignment 1-3 (Distributed MapReduce) due at 11:59pm
Eventual Consistency and Scaling Out
Mon 2/19 Distributed Snapshots (Lloyd) [pdf] [pptx] Suggested reading: Chandy-Lamport
Wed 2/21 Eventual consistency, Bayou (Lloyd) [pdf] [pptx] Suggested reading: Bayou
Thu or Fri Distributed Snapshots [pdf] [pptx]
Mon 2/26 Peer-to-Peer Systems and Distributed Hash Tables (Freedman) [pdf] [pptx] Suggested reading: Chord
Wed 2/28 Chord under Failures (Freedman) Same slides as previous lecture
Thu or Fri Bayou and Chord [pdf] [pptx]
Fri 3/1 Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm
Replicated State Machines
Mon 3/4 Replicated State Machines via Primary Backup (Lloyd) [pdf] [pptx]
Wed 3/6 View Changes and Consensus (Lloyd) [pdf] [pptx]
TBD Office Hours open to all students in lieu of precepts, at TBD
Thurs 3/7 Midterm exam in person, 730pm-10pm in McCosh 10
Mon 3/11 Spring Break
Wed 3/13 Spring Break
Mon 3/18 Consensus with RAFT (Freedman) [pdf] [pptx] Suggested reading: RAFT
Wed 3/20 More RAFT (Freedman) Same slides as previous lecture
Thu or Fri Successful System Implementation Strategies + Raft Leader Election [pdf] [pptx]
Strong Consistency and Scaling Out with Transactions
Mon 3/25 Strong Consistency (Lloyd) [pdf] [pptx]
Wed 3/27 Scalable Causal Consistency (Lloyd) [pdf] [pptx] Suggested reading: COPS
Thu or Fri RAFT [pdf] [pptx]
Fr 3/29 Assignment 3 (Raft Leader Election) due at 11:59pm
Mon 4/1 Atomic Commit and Concurrency Control (Lloyd) [pdf] [pptx]
Wed 4/3 Spanner 1 (Freedman) [pdf] [pptx] Suggested reading: Spanner
Thu or Fri Consistency [pdf] [pptx]
Mon 4/8 Cancelled
Wed 4/10 Spanner 2 (Freedman video) [pdf] [pptx] Video link on EdStem
Thu or Fri Concurrency Control [pdf] [pptx]
Mon 4/15 CAP, PRAM, SNOW, PORT, and FLP (Lloyd) [pdf] [pptx] Optional: CAP, PRAM, SNOW, PORT, FLP
Making Distributed Systems Faster
Wed 4/17 Reasoning about System Performance (Freedman) [pdf] [pptx]
Thu or Fri Spanner and SNOW [pdf] [pptx]
Fri 4/19 Assignment 4 (Raft Log Consensus) due at 11:59pm
Mon 4/22 Blockchains (Freedman) [pdf] [pptx]
Wed 4/24 Tying It All Together (Lloyd) [pdf] [pptx] Video link on EdStem
Thu or Fri Extra Office Hours In Lieu of Precept
Reading Period
Tu 5/07 Assignment 5 (Key-value Storage Service) due at 11:59pm
Fr 5/10 Final exam in person, 130pm-430pm in McCosh 50