View on GitHub

CSE 40771 - Distributed Systems

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

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.

Course Schedule

MondayWednesdayFridayGrad 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