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

Creative Commons License

Date Topics Slides Readings
Wed 09/11 Course overview and intro [pdf] [pptx]
Fri 09/13 Go systems programming [pdf] [pptx] [syntax] [intro] [soln]
Mon 09/16 Network communication and Remote Procedure Calls [pdf] [pptx]
Wed 09/18 Caching and consistency : NFS and the Web [pdf] [pptx]
Fri 09/20 Concurrency in Go, MapReduce [pdf] [pptx]
Mon 09/23 Time and Logical Clocks [pdf] [pptx]
Tues 09/24 Assignment 1-1 (Go) due at 11:59pm
Wed 09/25 Vector clocks [pdf] [pptx]
Fri 09/27 RPCs in Go [pdf] [pptx] [wc-server]
Fri 09/27 Assignment 1-2 (Simple MapReduce) due at 11:59pm
Eventual Consistency and Scaling Out
Mon 09/30 Distributed snapshots [pdf] [pptx] [blackboard]
Wed 10/02 Eventual consistency, Bayou [pdf] [pptx] Suggested reading: Bayou
Thurs 10/03 Assignment 1-3 (Distributed MapReduce) due at 11:59pm
Fri 10/04 Distributed Snapshots [pdf] [pptx] [handout][soln]
Mon 10/07 Peer-to-Peer Systems and Distributed Hash Tables [pdf] [pptx] Suggested reading: Chord
Wed 10/09 Scale-out key-value storage, Dynamo (Jeff Helt) [pdf] [pptx] Suggested reading: Dynamo
Fri 10/11 Dynamo and Bayou [pdf] [pptx]
Replicated State Machines
Mon 10/14 Replicated State Machines via Primary Backup [pdf] [pptx]
Wed 10/16 Google's Consistent, Global Authorization System (Dr. Ramon Caceres) [conference talk + slides + paper]
Thurs 10/17 Assignment 2 (Chandy Lamport Snapshots) due at 11:59pm
Fri 10/18 System Design [pdf] [pptx]
Mon 10/21 Replicated State Machines - View Change and Consensus [pdf] [pptx]
Wed 10/23 Midterm exam, 9-10:50am.
418 students with last names A-N go to CS 104. 418 students with last names O-Z go to PNI A32. All 518 students go to PNI A32.
Fri 10/25 Review of Midterm, 10-11:50am, in CS 104. (No separate precepts.)
Mon 10/28 Fall recess
Wed 10/30 Fall recess
Fri 11/01 Fall recess
Mon 11/04 Replicated State Machines - RAFT [pdf] [pptx] Pre-reading: RAFT
Wed 11/06 Replicated State Machines - RAFT, continued
Fri 11/08 RAFT [pdf] [pptx] [slides w solutions pdf] [slides w solutions pptx] [handout]
Strong Consistency and Scaling Out with Transactions
Mon 11/11 Consistency [pdf] [pptx]
Wed 11/13 Atomic Commit and Concurrency Control [pdf] [pptx]
Fri 11/15 Consistency [pdf] [pptx] [handout]
Mon 11/18 Scalable Causal Consistency [pdf] [pptx] Suggested reading: COPS
Wed 11/20 OCC and MVCC [pdf] [pptx]
Thurs 11/21 Assignment 3 (Raft Leader Election) due at 11:59pm
Fri 11/22 Concurrency Control [pdf] [pptx]
Mon 11/25 Spanner [pdf] [pptx] Suggested reading: Spanner
Wed 11/27 Thanksgiving recess
Fri 11/29 Thanksgiving recess
Mon 12/02 CAP, PRAM, and SNOW [pdf] [pptx] Suggested reading: CAP, PRAM (Theorem 1), SNOW (Sections 3 & 4)
Making Systems Faster
Wed 12/04 Distributed Video Processing [pdf] [pptx] Suggested reading: SVE
Fri 12/06 Spanner and SNOW [pdf] [pptx]
Mon 12/09 Reasoning about System Performance [pdf] [pptx]
Wed 12/11 Tying It All Together [pdf] [pptx]
Fri 12/13 Assignment 4 (Raft Log Consensus) due at 11:59pm
Reading Period
Tues 01/14 Assignment 5 (Key-value Storage Service) due at 5:00pm
Mon 01/20 Final exam, Friend Center 101, 7:30-10:30pm