Schedule

Until further notice, 418 lectures will be taught virtually via Zoom, although precepts are in-person.

This schedule and syllabus is preliminary and subject to change. Precepts are taught Wednesday evening and Thursday, although in the schedule below, these appear on Thursday (i.e., that material listed below as Thursday precept is the same as taught in the Wednesday evening precept.)

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
Fundamentals
Mon 01/24 Distributed Systems Intro [pdf] [pptx]
Wed 01/26 Course Overview [pdf] [pptx]
Thurs 01/27 Go systems programming [pdf] [pptx] [syntax] [intro] [soln]
Mon 01/31 Network communication and Remote Procedure Calls [pdf] [pptx]
Wed 02/02 Intro to Failure: RPCs [pdf] [pptx]
Thurs 02/03 Concurrency in Go, MapReduce [pdf] [pptx]
Thurs 02/03 Assignment 1-1 (Go) due at 11:59pm
Mon 02/07 Time and Logical Clocks 1 [pdf] [pptx] Suggested reading: Time, Clocks...
Tues 02/08 Assignment 1-2 (Simple MapReduce) due at 11:59pm
Wed 02/09 Time and Logical Clocks 2 [pdf] [pptx]
Thurs 02/10 RPCs in Go [pdf] [pptx] [wc-server]
Thurs 02/10 Assignment 1-3 (Distributed MapReduce) due at 11:59pm
Eventual Consistency and Scaling Out
Mon 02/14 Distributed Snapshots [pdf] [pptx] Suggested reading: Chandy-Lamport
Wed 02/16 Eventual consistency, Bayou [pdf] [pptx] Suggested reading: Bayou
Thurs 02/17 Distributed Snapshots [pdf]
Mon 02/21 Peer-to-Peer Systems and Distributed Hash Tables [pdf] [pptx] Suggested reading: Chord
Wed 02/23 Scale-out key-value storage, Dynamo [pdf] [pptx] Suggested reading: Dynamo
Thurs 02/24 Bayou and Dynamo [pdf] [pptx]
Thurs 02/24 Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm
Replicated State Machines
Mon 02/28 Replicated State Machines via Primary Backup [pdf] [pptx]
Wed 03/02 View Changes and Consensus [pdf] [pptx]
Thurs 03/03 Midterm exam online, taken during a 3-hour period 418 take-home reading: Successful System Implementation Strategies
Mon 03/07 Spring break
Wed 03/09 Spring break
Thurs 03/10 Spring break
Mon 03/14 Consensus with Paxos [pdf] [pptx] Suggested reading: Paxos Made Simple
Wed 03/16 RAFT [pdf] [pptx] Suggested reading: RAFT
Thurs 03/17 RAFT [pdf] [handout]
Strong Consistency and Scaling Out with Transactions
Mon 03/21 Strong Consistency [pdf] [pptx]
Wed 03/23 Scalable Causal Consistency [pdf] [pptx] Suggested reading: COPS
Thurs 03/24 Optional Precepts: going over midterm
Mon 03/28 Atomic Commit and Concurrency Control [pdf] [pptx]
Wed 03/30 Spanner 1 [pdf] [pptx] Suggested reading: Spanner
Thurs 03/31 Consistency [pdf]
Thurs 03/31 Assignment 3 (Raft Leader Election) due at 11:59pm
Mon 04/04 Spanner 2 [pdf] [pptx]
Wed 04/06 CAP, PRAM, SNOW, PORT, and FLP [pdf] [pptx] Optional: CAP, PRAM, SNOW, PORT, FLP
Thurs 04/07 Concurrency Control [pdf]
Bringing it together
Mon 04/11 Topic: Distributed Systems for Content Delivery [pdf] [pptx]
Wed 04/13 Topic: Distributed Systems for Machine Learning [pdf]
Thurs 04/14 Spanner and SNOW [pdf]
Mon 04/18 Reasoning about System Performance [pdf] [pptx]
Tues 04/19 Assignment 4 (Raft Log Consensus) due at 11:59pm
Wed 04/20 Tying It All Together [pdf] [pptx]
Reading Period
Tues 05/03 Assignment 5 (Key-value Storage Service) due at 5:00pm
05/06-14 Final exam online, taken during a 3-hour period. Staff available to answer questions during set times.