CS 475 Concurrent & Distributed Systems (Fall 2021)

Course Schedule

The course schedule is tentative and subject to change*.

DateTopics ReadingsNotes
Tue 08/24 Lec 1: Introduction [slides] [slides+notes]
Thu 08/26 Go system programming [slides] [handout1] [handout2] Online Go tutorial (optional) Lab 0 out
Tue 08/31 Lec 2: Concurrency overview [slides] [slides+notes] OSTEP: Processes, Threads, Concurrency intro, Locks (required)
Thu 09/02 Lec 3: Networking, RPC [slides] van Steen §4.1-4.2; §8.3 (optional)
Tue 09/07 Lec 4: MapReduce [slides] MapReduce paper (required) Lab 0 due
Lab 1 out
Thu 09/09 Lec 5-1: MapReduce II, RPCs in Go [slides]
Lab 1 overview [video (Ed post)] [notes]
Lec 5-2: Google File System [slides] [slides+notes]
GFS paper (required)
Tue 09/14 Lec 6: Time and clocks I [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] Time, clocks paper (optional),
van Steen §6.1-6.2 (optional)
Thu 09/16 Lec 6-2: Time and clocks II [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] Time, clocks paper (optional),
van Steen §6.1-6.2 (optional)
Tue 09/21 Lec 7: 2PC, safety, liveness [slides] van Steen §8.5 (optional)
Thu 09/23 Lec 8: Consensus: Paxos [slides] [slides+notes] Paxos paper (required),
watch Paxos video (required),
Paxos vs. Raft paper: Page 7 (optional),
van Steen §8.1-8.2 (optional)
Tue 09/28 Lec 9: Consensus: Raft [slides] [slides+notes]
How to read a paper [slides] [video]
Raft paper (required),
watch Raft video (required)
Raft visualization
Lab 1 due
Thu 09/30 Lec 9-2: Consensus: Raft II [slides] [slides+notes] Raft paper (required),
watch Raft video (required)
Raft visualization
Lab 2a out
Tue 10/05 Midterm review [slides] [slides+notes]
Thu 10/07 Midterm (stats)
Tue 10/12 Fall break!
Thu 10/14 Lec 10: Byzantine fault tolerance [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] PBFT paper: §1-4 (optional)
Tue 10/19 Lec 11: Strong consistency [slides (pdf)] [pdf+notes] [slides (pptx] [pptx+notes]
Linearizability examples [notes]
Linearizability paper: §1-2 (required)
RIFL paper: §2 (optional)
Thu 10/21 Lec 12: CAP Theorem and causal consistency [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] Problems with CAP blog (optional) Lab 2a due
Tue 10/26 Lec 13: Consistent hashing, Dynamo [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] Dynamo paper (required)
Thu 10/28 Lec 13-2: Consistent hashing, Dynamo [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes]
Hinted handoff consistency example (Slide#57) [notes]
VV application-resolving case (Slide#70) [notes]
Dynamo paper (required)
Tue 11/02 Lec 14: Concurrency control, recovery, and locking [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] Franklin paper: §1-3.1 (required)
Thu 11/04 Lec 14-2: Concurrency control, recovery, and locking [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes]
Phantom problem (Slide#43) [notes]
Franklin paper: §1-3.1 (required) Lab 2b due
Tue 11/09 Lec 15: 2PL, OCC [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes]
OCC validate conditions (Slide#68/69) [notes]
Thu 11/11 Lec 16: Spark [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes] Spark paper (optional) Lab 2c due

Lab 3 out

Tue 11/16 Lec 16-2: Spark [slides (pdf)] [pdf+notes] [slides (pptx)] [pptx+notes]
PageRank example (Slide#43-48) [notes]
Spark paper (optional)
Thu 11/18 Lec 17: Facebook (Meta) memcache [slides] [slides+notes] Scaling memcache paper (optional)
Tue 11/23 Lec 17-2: Facebook (Meta) memcache [slides] [slides+notes] Scaling memcache paper (optional)
Thu 11/25 Thanksgiving break!
Tue 11/30 Final review [slides] [slides+notes]
Online course evaluation
Lab 3 due
Thu 12/02 Lec 18: Cloud and serverless computing [slides] [slides+notes] A Berkeley view of cloud computing paper (optional),
A Berkeley view of serverless computing paper (optional)
Tue 12/07 Reading day Raft lab series due
Thu 12/09 Final exam (7:30 am - 10:00 am)

*: Color codings:

-Fundamentals- -Fault tolerance- -Consistency, scalability, transactions- -Boutique topics-