The following lecture schedule is tentative and might be updated during the semester. We will be keeping you informed of any changes via Piazza. You may also want to take a look at the Official Semester Dates.
MSAT refers to the textbook Distributed Systems, 4th Edition by Maarten van Steen and Andrew S. Tanenbaum.
| Date | Topic | Assigned Reading | Programming Assignment / Quiz |
|---|---|---|---|
| 9/2 | L1: Course Overview | - | |
| 9/4 | - | Futures and Promises | HW1: Futures |
| 9/9 | L2: Computation and Communication Primitives (threads; RPCs) | MSAT Ch. 3.1, 4.1, 4.2 | |
| 9/14 | L3: Concurrency and Parallelism | The Go Programming Language and Environment | HW2: MapReduce |
| 9/16 | L4: Cluster Computing I (data-parallel computation) | MapReduce | |
| 9/21 | L5: Cluster Computing II (dataflow systems) | Spark | |
| 9/23 | L6: Cluster Computing III (distributed shared memory systems) | TreadMarks | |
| 9/28 | Practice Quiz (non-graded) on Golang (concurrency; channels; Go routines) | Review lab material | HW3: OmniPaxos A |
| 9/30 | L7: Replication and Fault-tolerance | ||
| 10/5 | L8: State Machine Replication I (distributed consensus; leader election) | OmniPaxos (Sec. 1-3, 5) | |
| 10/7 | L9: State Machine Replication II (log replication; persistence; reconfiguration) | OmniPaxos (Sec. 4, 6) | |
| 10/12 | - | - | HW4: OmniPaxos B |
| 10/13 | L10: State Machine Replication III | Zookeeper | Quiz I: Golang and OmniPaxos (in class; graded) |
| 10/14 | L11: Distributed File Systems | GFS | |
| 10/19 | L12: Geo-replicated Systems | PNUTS | |
| 10/21 | L13: Publish-Subscribe (asynchronous, reliable, event-driven communication) | The Many Faces of Publish/Subscribe | Practice Exam (non-graded): Lectures 1-12 + Lab Discussions |
| 10/26 | Midterm (during lecture) | Lectures 1-12 | |
| 10/28 | L14: Eventual Consistency (conflict resolution; gossip protocols) | Dynamo | |
| 11/2 | L15: Distributed Transactions I (serializability; snapshot isolation) | Spanner | HW5: PubSub A |
| 11/4 | L16: Distributed Transactions II (atomicity; two-phase commit) | - | |
| 11/9 | L17: Distributed Transactions III (optimistic concurrency control) | FaRM | |
| 11/11 | L18: Distributed Hash Tables (DHTs) | Chord | Quiz II: Distributed Transactions (in class; graded) |
| 11/16 | L19: Cluster Management (resource consolidation; job scheduling) | Borg | HW5: PubSub B |
| 11/18 | L20: Distributed Model Training | Collective Communication for 100k+ GPUs | |
| 11/23 | L21: Distributed Tracing (microservices) | Pivot Tracing | |
| 11/30 | L22: Bitcoin and Blockchain | Bitcoin | |
| 12/2 | L23: Decentralized Trust | TBD | Practice Exam (non-graded): Lectures 13-22 + Lab Discussions |
| 12/7 | L24: Research Topics in Distributed Systems | - | |
| 12/9 | L25: Recap | ||
| 12/14 | Final Exam | Lectures 13-20 | * PSY B53 3-5pm |