CSE 40771/60771 Distributed Systems - Fall 2021
Prof. Douglas Thain
TA: Yuanbo Guo
9:25-10:15 MWF, Debartolo Hall 201
Department of Computer Science and Engineering
University of Notre Dame
Course Overview
A distributed system is any computer system consisting of multiple machines that work together on a common problem. Distributed systems appear in many areas of computing, including cloud computing, mobile computing, edge computing, the internet of things, aerospace systems, and more. Distributed systems have been both interesting and difficult to build because their components may be autonomous and highly failure-prone. Students will learn the fundamental principles of distributed systems, build a distributed hash table through a series of cumulative assignments, and undertake a course project of their own choice. This will be a fun and challenging class for students who like to build working software systems.
Course Materials
- Syllabus
- Textbook: Distributed Systems, Third Edition
- Research Papers for Graduate Students
- General Instructions for Assignments
- Course Sakai Home Page
Office Hours
Office hours will be held simultaneously in person starting on August 27th. If you prefer to talk via Zoom, please indicate that via a Slack message, and we will dial into Zoom.- Prof. Thain: Mon/Fri 1-3PM in 384C Fitzpatrick (CSE Main Office) (office hours zoom on request)
- Yuanbo Guo: Tue/Wed 1-3PM 150B Fitzpatrick (CSE Student Commons) (office hours zoom on request)
(except Sep 1st: 1:30-3:30)
Course Schedule
Monday | Wednesday | Friday | Grad Readings | ||
Aug 23 | Intro and Purposes Ch 1 | Architectural Styles Ch 2.1-2.2 | System Architectures Ch 2.3-2.4 | A Note on Distributed Computing | |
Aug 30 | Processes Chapter 3 | Clients and Servers Chapter 3 A1 Due: Measuring | Server Clusters Chapter 3 | Scalability! But at what COST? | |
Sep 6 | Communications Chapter 4.1 | Remote Procedure Call Chapter 4.2 | RPC Semantics Chapter 8.3 | Reducing Cross Domain... | |
Sep 13 | State Management | Case Study: NFS Chapter 2.4 RFC 1094 A2 Due: Remote Procedure Call | Messaging Chapter 4.3 | Kafka/RabbitMQ | |
Sep 20 | Naming Chapter 5.1-5.2 | Structured Naming Chapter 5.3 A3 Due: Persistence | Attribute Naming Chapter 5.4 | Chord | |
Sep 27 | What is Time? Chapter 6.1 | Logical Clocks Chapter 6.2 | Vector Clocks Chapter 6.2 | Distributed Snapshots | |
Oct 4 | Mutual Exclusion Chapter 6.3 A4 Due: Concurrency | Catch Up | Mutex / Leases | Impossibility of Consensus | |
Oct 11 | Midterm Exam | Elections Chapter 6.4 | Consistency Intro Project Proposal Due | ||
Oct 17 | Fall Break | ||||
Oct 25 | Replication Strategies Chapter 7.1 | Data Centric Consistency Chapter 7.2 | Client Centric Consistency Chapter 7.3 | Leases | |
Nov 1 | Consistency Contd | Two Phase Commit Chapter 8.5 A5 Due: Replication | Chain Replication (Paper) | Keeping CALM | |
Nov 8 | Security - General Chapter 9.1/9.3 | Symmetric Key Systems Chapter 9.2 | Asymmetric Key Systems Chapter 9.2 | Byzantine Generals | |
Nov 15 | Case Study: HTCondor (Paper) | Case Study: Ceph (Paper) Progress Report Due | Case Study: Kafka (Paper) | Bitcoin | |
Nov 22 | Case Study: Bitcoin (Paper) | Thanksgiving Break | |||
Nov 29 |
Project Talks
|
Project Talks
|
Project Talks
| ||
Dec 6th | Project Talks
| (No Class) Final Project Due Wed at 5PM | |||
Final Exam - Wednesday, December 15 8:00-10:00AM in 131 DeBartolo Hall |