15-440: Distributed Systems Syllabus


Distributed Systems
Maarten Van Steen & Andrew S. Tanenbaum
Published by CreateSpace Independent Publishing Platform, ISBN 978-1543057386, 3rd edition.

The lecture notes will be available after each lecture to assist with studying -- please read them as they often contain material that goes beyond just what we covered in lecture! For supplemental reading in particular areas, you may find one of the following texts, available from the library, helpful:


Your final grade for the course will be based on the following weights for the components of the course. The weights of the individual projects will vary slightly by the difficulty of the project:

The midterms will be in-class, closed-book exams. While they may cover all material to that point in the class, their content will emphasize the material covered since the previous exam. The final exam will be a closed-book exam, covering material from the whole semester, with slight emphasis on material covered since the last midterm.

For more information about the project component, see the assignments page.

The homework will combine both textbook-like questions as well as hands-on experimental exercises. There will be three homework assignments.

Because of the importance of understanding both the theoretical and hands-on elements of systems, students must pass all three components of the course (homeworks, exams, and the projects) in order to receive a passing grade for the course. This does not affect the actual letter grade assignment unless one of the components is not completed to a passing standard.


Date Instructor Topics Notes Readings
Tue 08/29 yuvraj Introduction
1.1, 1.2
Thu 08/31 srini Communication 1, the Internet in a Day, day 1
[pdf] [ppt]
Tue 09/05 srini Communication 2, the Internet in a Day, day 2
Wed 09/06 Go! and P0 overview
P0 skeleton code available on GitHub. Go-P0 recitation slides
Thu 09/07 yuvraj Consistency - Classical synchronization + Go-style concurrency
[pdf] [ppt]
Kesden concurrency notes
Tue 09/12 srini Time and Synchronization
[pdf] [ppt]
Tanenbaum 6.1-6.2
Thu 09/14 srini Remote Procedure Calls
[pdf] [ppt]
Tanenbaum 4.2-4.3
Tue 09/19 yuvraj Distributed Filesystems
[pdf] [ppt]
See also the book chapters on AFS and NFS from the Wisconsin OS book.
Thu 09/21 yuvraj Distributed Filesystems 2 - AFS, Coda, callbacks
[pdf] [ppt]
CODA paper.
Tue 09/26 srini Distributed Mutual Exclusion
[pdf] [pptx]
Tanenbaum 6.3-6.4
Thu 09/28 yuvraj Concurrency Control
[pdf] [ppt]
Tanenbaum 8.1, 8.5
Tue 10/03 yuvraj Logging and Crash Recovery
[pdf] [ppt]
Wikipedia Algorithms for Recovery and Isolation. Tanenbaum 8.1, 8.6
Thu 10/05 yuvraj Distributed Replication
[pdf] [pptx]
Further reading for PAXOS. Also check out the RAFT consensus algorithm and a nice Vizualization of how it works! Tanenbaum 7.2.2 (p364-p370), 7.5.2, Tanenbaum 8.2, Paxos Made Simple Paper
Tue 10/10 srini Fault Tolerance & RAID
See also the book chapter from the Wisconsin book.
Thu 10/12 srini DNS
[pdf] [ppt]
Cheat sheet on using and interpreting dig
Sun 10/15 srini & daniel Midterm Review (10am DH 2315)
[pdf] [pptx]
Mon 10/16 MIDTERM EXAM (6pm DH 2210)
Tue 10/17 No Class
Thu 10/19 No Class
Tue 10/24 yuvraj Data-Intensive Computing and MapReduce/Hadoop
For more info, see the MapReduce paper, it's pretty readable. You might want to examine the Hadoop code for Word Count and Matrix multiplication.
Thu 10/26 srini GFS / HDFS / Spanner
[pdf] [pptx]
Read the Google Filesystem. Optional GFS follow-up interview.
Tue 10/31 srini Consistent hashing and name-by-hash
[pdf] [pptx]
Tanenbaum 5.1-5.5
Thu 11/02 srini Content Delivery Networks
[pdf] [pptx]
Additional CDN slides (presented by Daniel on 11/7) Tanenbaum 7.6,
Tue 11/07 devdeep Peer-to-Peer and Blockchains
Updated slides . Read Sections 2 and 3 in the Untangling Blockain Paper. Mysterious beginnings of bitcoin .
Thu 11/09 daniel Spark and Distributed Machine Learning
RDD Paper (in-class question on immutability - footnote 2 (page 2) discusses that this is a design choice for simplicity, but not a necessity), Slide set has many further references
Tue 11/14 daehyeok and daniel Virtualization
See also the book chapter on Virtual Machines from the Wisconsin OS book
Thu 11/16 srini Byzantine Fault Tolerance
See also an online lecture about BFT by Barbara Liskov, and the PBFT paper. Tanenbaum pages 449 - 460
Tue 11/21 No Class, Early Thanksgiving
Thu 11/23 No Class, Thanksgiving
Tue 11/28 yuvraj Security Protocols
See wikipedia entry for needham-schroeder and wikipedia entry for Diffie-Hellman. Tanenbaum 9.1-9.2, 9.4.1
Thu 11/30 yuvraj Security II, Case Study - Anonymous Routing and TOR
Tue 12/05 yuvraj & srini Final Review (to be rescheduled)
Thu 12/07 No Class, Early Exam Break
Sun 12/17 FINAL EXAM - time 5:30pm - room TBD

As mentioned in class about the link to Amazon: David Andersen is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.

Last updated: 2017-11-18 12:19:46 -0500 [validate xhtml]