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
Wed 09/07 Distributed Systems Intro [pdf] [pptx]
Wed or Thu Go systems programming [pdf] [pptx] [syntax] [intro] [soln]
Mon 09/12 Course Overview [pdf] [pptx]
Wed 09/14 Network communication and Remote Procedure Calls [pdf] [pptx]
Wed or Thu Concurrency in Go, MapReduce [pdf] [pptx]
Fri 09/16 Assignment 1-1 (Go) due at 11:59pm
Mon 09/19 Intro to Failure: RPCs [pdf] [pptx]
Tues 09/20 Assignment 1-2 (Simple MapReduce) due at 11:59pm
Wed 09/21 Time and Logical Clocks 1 [pdf] [pptx] Suggested reading: Time, Clocks...
Wed or Thur RPCs in Go [pdf] [pptx] [wc-server]
Fri 09/23 Assignment 1-3 (Distributed MapReduce) due at 11:59pm
Mon 09/26 Time and Logical Clocks 2 [pdf] [pptx]
Eventual Consistency and Scaling Out
Wed 09/28 Distributed Snapshots [pdf] [pptx] Suggested reading: Chandy-Lamport
Wed or Thu Distributed Snapshots [pdf] [pptx] [handout]
Mon 10/03 Eventual consistency, Bayou [pdf] [pptx] Suggested reading: Bayou
Wed 10/05 Peer-to-Peer Systems and Distributed Hash Tables [pdf] [pptx] Suggested reading: Chord
Wed or Thu Bayou and Chord [pdf] [pptx]
Fri 10/07 Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm
Mon 10/10 Chord under Failures Same slides as previous lecture
Wed 10/12 Office Hours from 10am-12pm in Arch 101
Wed & Thurs Office Hours open to all students in lieu of precepts, in at their normal locations at their normal times
Thu 10/13 Midterm exam in person, 730pm-10pm in Friend 101
Mon 10/17 Fall recess
Wed 10/19 Fall recess
Replicated State Machines
Mon 10/24 Replicated State Machines via Primary Backup [pdf] [pptx] Video Lecture
Wed 10/26 View Changes and Consensus [pdf] [pptx]
Wed or Thur Successful System Implementation Strategies [pdf] [pptx]
Mon 10/31 Consensus with RAFT [pdf] [pptx] Suggested reading: RAFT
Wed 11/02 More RAFT Same slides as previous lecture
Wed or Thu RAFT [pdf] [pptx]
Strong Consistency and Scaling Out with Transactions
Mon 11/07 Strong Consistency [pdf] [pptx]
Wed 11/09 Scalable Causal Consistency [pdf] [pptx] Suggested reading: COPS
Wed or Thu Consistency [pdf] [pptx]
Mon 11/14 Atomic Commit and Concurrency Control [pdf] [pptx]
Tu 11/15 Assignment 3 (Raft Leader Election) due at 11:59pm
Wed 11/16 Spanner 1 (Jeff Helt) [pdf] [pptx] Suggested reading: Spanner
Wed or Thu Extra Office Hours In Lieu of Precept
Mon 11/21 Spanner 2 (Jeff Helt) [pdf] [pptx]
Wed 11/23 Thanksgiving recess
Mon 11/28 CAP, PRAM, SNOW, PORT, and FLP [pdf] [pptx] Optional: CAP, PRAM, SNOW, PORT, FLP
Making Distributed Systems Faster
Wed 11/30 Distributed Video Processing [pdf] [pptx] Suggested reading: SVE
Wed or Thu Concurrency Control [pdf] [pptx]
Fri 12/02 Assignment 4 (Raft Log Consensus) due at 11:59pm
Mon 12/05 Reasoning about System Performance [pdf] [pptx]
Wed 12/07 Tying It All Together [pdf] [pptx]
Wed or Thu Spanner and SNOW [pdf] [pptx]
Reading Period
Fri 12/16 Assignment 5 (Key-value Storage Service) due at 5:00pm
Tues 12/20 Final exam in person. 1:30-4:30pm in McCosh Hall 10.