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 Wyatt Lloyd, Princeton University. Materials are derived from those shared by Michael Freedman and Kyle Jamieson, Princeton University under the same license.

Creative Commons License

Date Topics Slides Readings
Mon 02/01 Distributed Systems Intro [pdf] [pptx]
Wed 02/03 Course Overview [pdf] [pptx]
Fri 02/05 Go systems programming [pdf] [pptx] [syntax] [intro] [soln]
Mon 02/08 Network communication and Remote Procedure Calls [pdf] [pptx]
Wed 02/10 Intro to Failure: RPCs [pdf] [pptx]
Thurs 02/11 Assignment 1-1 (Go) due at 11:59pm
Fri 02/12 Concurrency in Go, MapReduce [pdf] [pptx]
Mon 02/15 Time and Logical Clocks 1 [pdf] [pptx] Suggested reading: Time, Clocks...
Tues 02/16 Assignment 1-2 (Simple MapReduce) due at 11:59pm
Wed 02/17 Time and Logical Clocks 2 [pdf] [pptx]
Thurs 02/18 Assignment 1-3 (Distributed MapReduce) due at 11:59pm
Fri 02/19 RPCs in Go [pdf] [pptx] [wc-server]
Eventual Consistency and Scaling Out
Mon 02/22 Distributed Snapshots [pdf] [pptx] Suggested reading: Chandy-Lamport
Wed 02/24 Eventual consistency, Bayou [pdf] [pptx] Suggested reading: Bayou
Fri 02/26 Distributed Snapshots [pdf]
Mon 03/01 Peer-to-Peer Systems and Distributed Hash Tables [pdf] [pptx] Suggested reading: Chord
Wed 03/03 Scale-out key-value storage, Dynamo [pdf] [pptx] Suggested reading: Dynamo
Thurs 03/04 Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm
Fri 03/05 Bayou and Dynamo [pdf] [pptx]
Replicated State Machines
Mon 03/08 Replicated State Machines via Primary Backup [pdf] [pptx]
Wed 03/10 Midterm exam online, taken during a 3-hour period
Fri 03/12 Midterm review: 10-1150 Use Lecture Zoom Link
Mon 03/15 Spring break
Wed 03/17 View Changes and Consensus [pdf] [pptx]
Fri 03/19 Successful System Implementation Strategies [pdf]
Mon 03/22 Consensus with Paxos [pdf] [pptx] Suggested reading: Paxos Made Simple
Wed 03/24 RAFT [pdf] [pptx] Suggested reading: RAFT
Fri 03/26 RAFT [pdf] [handout]
Strong Consistency and Scaling Out with Transactions
Mon 03/29 Strong Consistency [pdf] [pptx]
Wed 03/31 Scalable Causal Consistency [pdf] [pptx] Suggested reading: COPS
Fri 04/02 Extra Office Hours In Lieu of Precept
Mon 04/05 Atomic Commit and Concurrency Control [pdf] [pptx]
Wed 04/07 Spanner 1 [pdf] [pptx] Suggested reading: Spanner
Th 04/08 Assignment 3 (Raft Leader Election) due at 11:59pm
Fri 04/09 Consistency [pdf]
Mon 04/12 Spanner 2 [pdf] [pptx]
Wed 04/14 CAP, PRAM, SNOW, PORT, and FLP [pdf] [pptx] Optional: CAP, PRAM, SNOW, PORT, FLP
Fri 04/16 Concurrency Control [pdf]
Making Distributed Systems Faster
Mon 04/19 Distributed Video Processing [pdf] [pptx] Suggested reading: SVE
Wed 04/21 Reasoning about System Performance [pdf] [pptx]
Th 04/22 Assignment 4 (Raft Log Consensus) due at 11:59pm
Fri 04/23 Spanner and SNOW [pdf]
Mon 04/26 Tying It All Together [pdf] [pptx]
Reading Period
Mon 05/10 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.