Schedule

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 Wyatt Lloyd, Princeton University.

Creative Commons License

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