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/27 | Distributed Systems Intro (Freedman) | [pdf] [pptx] | |
Wed 1/29 | Course Overview (Lloyd) | [pdf] [pptx] | |
Thu or Fr | Go systems programming | [pdf] [pptx] | |
Mon 2/3 | Network communication and Remote Procedure Calls (Freedman) | [pdf] [pptx] | |
Wed 2/5 | Intro to Failure: RPCs (Lloyd) | ||
Thu or Fri | Concurrency in Go, MapReduce | ||
Fri 2/7 | Assignment 1-1 (Go) due at 11:59pm | ||
Mon 2/10 | Time and Logical Clocks 1 (Freedman) | Suggested reading: Time, Clocks... | |
Tues 2/11 | Assignment 1-2 (Simple MapReduce) due at 11:59pm | ||
Wed 2/12 | Time and Logical Clocks 2 (Freedman) | ||
Thu or Fri | RPCs in Go | ||
Fri 2/14 | Assignment 1-3 (Distributed MapReduce) due at 11:59pm | ||
Eventual Consistency and Scaling Out | |||
Mon 2/17 | Distributed Snapshots (Lloyd) | Suggested reading: Chandy-Lamport | |
Wed 2/19 | Eventual consistency, Bayou (Lloyd) | Suggested reading: Bayou | |
Thu or Fri | Distributed Snapshots | ||
Mon 2/24 | Peer-to-Peer Systems and Distributed Hash Tables (Freedman) | Suggested reading: Chord | |
Wed 2/26 | Chord under Failures (Freedman) | Same slides as previous lecture | |
Thu or Fri | Bayou and Chord | ||
Fri 2/28 | Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm | ||
Replicated State Machines | |||
Mon 3/3 | Replicated State Machines via Primary Backup (Lloyd) | ||
Wed 3/5 | View Changes and Consensus (Lloyd) | ||
TBD | Office Hours open to all students in lieu of precepts, at TBD | ||
Date TBD | Midterm exam in person, 730pm-10pm in TBD. Likely to be scheduled for Thurs 3/6. | ||
Mon 3/10 | Spring Break | ||
Wed 3/12 | Spring Break | ||
Mon 3/17 | Review Of the Midterm (Lloyd) | ||
Wed 3/19 | Consensus with RAFT (Freedman) | Suggested reading: RAFT | |
Thu or Fri | Successful System Implementation Strategies + Raft Leader Election | ||
Mon 3/24 | More RAFT (Freedman) | Same slides as previous lecture | |
Strong Consistency and Scaling Out with Transactions | |||
Wed 3/26 | Strong Consistency (Lloyd) | ||
Thu or Fri | RAFT | ||
Fr 3/28 | Assignment 3 (Raft Leader Election) due at 11:59pm | ||
Mon 3/31 | Scalable Causal Consistency (Lloyd) | Suggested reading: COPS | |
Wed 4/2 | Atomic Commit and Concurrency Control (Lloyd) | ||
Thu or Fri | Consistency | ||
Mon 4/7 | Spanner 1 (Freedman) | Suggested reading: Spanner | |
Wed 4/9 | Spanner 2 (Freedman) | ||
Thu or Fri | Concurrency Control | ||
Mon 4/14 | CAP, PRAM, SNOW, PORT, and FLP (Lloyd Video) | Optional: CAP, PRAM, SNOW, PORT, FLP | |
Making Distributed Systems Faster | |||
Wed 4/16 | Reasoning about System Performance (Lloyd Video) | ||
Thu or Fri | Spanner and SNOW | ||
Fri 4/18 | Assignment 4 (Raft Log Consensus) due at 11:59pm | ||
Mon 4/21 | AI Systems (Freedman) | ||
Wed 4/23 | Blockchains (Freedman) | ||
Thu or Fri | Extra Office Hours In Lieu of Precept | ||
Reading Period | |||
Tu 5/06 | Assignment 5 (Key-value Storage Service) due at 11:59pm | ||
Tu 5/13 | Final exam in person, 830am-1130am in TBD |