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 and Jialin Ding, Princeton University.
| Date | Topics | Slides | Readings |
|---|---|---|---|
| Fundamentals | |||
| Thu 9/3 | Distributed Systems Intro and Course Overview (Ding) | [pdf] [pptx] | |
| Fri 9/4 | Go systems programming | [pdf] [pptx] | |
| Tue 9/8 | Network communication and Remote Procedure Calls (Freedman) | [pdf] [pptx] | |
| Thu 9/10 | Intro to Failure: RPCs (Freedman) | [pdf] [pptx] | |
| Fri 9/11 | Concurrency in Go, MapReduce | ||
| Tue 9/15 | Time and Logical Clocks 1 (Freedman) | Suggested reading: Time, Clocks... | |
| Tue 9/15 | Assignment 1-1 (Go) and 1-2 (Simple MapReduce) due at 11:59pm | ||
| Thu 9/17 | Time and Logical Clocks 2 (Freedman) | ||
| Fri 9/18 | RPCs in Go | ||
| Fri 9/18 | Assignment 1-3 (Distributed MapReduce) due at 11:59pm | ||
| Eventual Consistency and Scaling Out | |||
| Tue 9/22 | Distributed Snapshots (Ding) | Suggested reading: Chandy-Lamport | |
| Thu 9/24 | Eventual consistency, Bayou (Ding) | Suggested reading: Bayou | |
| Fri 9/25 | Distributed Snapshots | ||
| Tue 9/29 | Peer-to-Peer Systems and Distributed Hash Tables (Freedman) | Suggested reading: Chord | |
| Thu 10/1 | Chord under Failures (Freedman) | ||
| Fri 10/2 | Bayou and Chord | ||
| Fri 10/2 | Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm | ||
| Replicated State Machines | |||
| Tue 10/6 | Replicated State Machines via Primary Backup (Ding) | ||
| Thu 10/8 | View Changes and Consensus (Ding) | ||
| Fri 10/9 | Successful System Implementation Strategies | ||
| Tue 10/13 | Consensus with RAFT (Ding) | Suggested reading: RAFT | |
| Thu 10/15 | Midterm Review Session (Ding) | ||
| Thu 10/15 | Midterm exam in person, TBD | ||
| Fri 10/16 | No recitation | ||
| Tue 10/20 | Fall Recess | ||
| Thu 10/22 | Fall Recess | ||
| Tue 10/27 | More RAFT (Ding) | Same slides as previous lecture | |
| Strong Consistency and Scaling Out with Transactions | |||
| Thu 10/29 | Strong Consistency (Freedman) | ||
| Fri 10/30 | RAFT | ||
| Tue 11/3 | Scalable Causal Consistency (Ding) | Suggested reading: COPS | |
| Thu 11/5 | Atomic Commit and Concurrency Control (Ding) | ||
| Fri 11/6 | Consistency | ||
| Fri 11/6 | Assignment 3 (Raft Leader Election) due at 11:59pm | ||
| Tue 11/10 | Spanner 1 (Freedman) | Suggested reading: Spanner | |
| Thu 11/12 | Spanner 2 (Freedman) | ||
| Fri 11/13 | Concurrency Control | ||
| Distributed Systems Potpourri | |||
| Tue 11/17 | Blockchains (Freedman) | ||
| Thu 11/19 | AI Systems (Freedman) | ||
| Fri 11/20 | Spanner | ||
| Tue 11/24 | CAP, PRAM, SNOW, PORT, and FLP (Ding) | ||
| Tue 11/24 | Assignment 4 (Raft Log Consensus) due at 11:59pm | ||
| Thu 11/26 | Thanksgiving Break | ||
| Tue 12/1 | Databases (Ding) | ||
| Thu 12/3 | Reasoning about System Performance (Ding) | ||
| Fri 12/4 | Extra Office Hours In Lieu of Precept | ||
| Reading Period | |||
| Tue 12/15 | Assignment 5 (Key-value Storage Service) due at 11:59pm | ||
| Sat 12/19 | Final exam in person, 8:30am-11:30am | ||