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.
Date | Topics | Slides | Readings |
---|---|---|---|
Fundamentals | |||
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 |