The course schedule is tentative and subject to change*.
Date | Topics | Readings | Notes |
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 |
|
|
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- |