Distributed Systems

ECE419, Winter 2025
University of Toronto
Instructor: Ashvin Goel

Distributed Systems
HomeLecturesLabsPiazzaQuercus

Lecture Material

The lectures will provide an understanding of the fundamental concepts in distributed systems and discuss several case studies of deployed systems.

The instructor will make lecture material available here as topics are covered in class. Lecture videos will not be recorded.

Topic and instructors slides Additional material
1. Introduction
Introduction to the course Reading: Introduction to Distributed System Design
2. Programming distributed systems
Threads and concurrency Code: Hello World
Code: Web Crawler
Models of distributed systems
Remote procedure calls Code: RPC
Reading: Implementing Remote Procedure Calls
Time in distributed systems Reading: Time, Clocks, and the Ordering of Events in a Distributed System
Reading: Clock Synchronization
Broadcast communication Reading: Broadcast mechanisms
3. Distributed storage systems
Data consistency and linearizability
Crash recovery Slides: Transaction Recovery
4. Replicated storage systems
Replication
Consensus
Case Study 1: Consensus in Raft Reading: In Search of an Understandable Consensus Algorithm (Extended Version)
Video: In Search of an Understandable Consensus Algorithm
Animation: The Secret Lives of Data
5. Scalable storage systems
Consistency models Reading: CAP Twelve Years Later: How the "Rules" Have Changed
Reading: Clarifications On The CAP Theorem And Data-Related Errors
Reading: Eventually Consistent
Reading: Replicated Data Consistency Explained Through Baseball
Case Study 2: Coordination with ZooKeeper Reading: ZooKeeper: Wait-free Coordination for Internet-scale Systems
Video: ZooKeeper: Wait-free Coordination for Internet-scale Systems
Case Study 3: Scalable Caching with Memcache Reading: Scaling Memcache at Facebook
Video: Scaling Memcache at Facebook
Reading: TAO: Facebook's Distributed Data Store for the Social Graph
Case Study 4: Dynamo: Highly Available KV Store Reading: Dynamo: Amazon's Highly Available Key-Value Store
Video and Experiences: Amazon's DynamoDB - 10 years later
6. Transactional storage systems
Transactions and concurrency control
Distributed transactions and atomic commit
7. Byzantine storage systems
Byzantine fault tolerance Reading: Practical Byzantine Fault Tolerance
Video: Practical Byzantine Fault Tolerance
Case Study 5: Bitcoin Reading: Bitcoin: A Peer-to-Peer Electronic Cash System
Reading: How the Bitcoin Protocol Actually works