O you possessed of sturdy intellects, observe the teaching that is hidden here beneath the veil of verses so obscure.
—Dante Alighieri, Inferno IX:61–63, trans. A. Mandelbaum
This page contains links to lecture notes, class lecture slides, and related reading material. Lecture slides are in Adobe PDF format. The slides here will generally be a superset of the material presented in class, with extra annotations and, in some cases, additional pages for clarity.
Please let me know if you find any errors or unclear wording. Any corrections will be most appreciated.
Week 1 Introduction to Distributed Systems
Topics
-
Definitions, properties, and challenges of distributed systems
-
Types of transparency (access, location, migration).
-
Horizontal vs. vertical scaling
-
Failure models (crash-stop, omission, and Byzantine faults)
-
Networking: IP, TCP/UDP, QUIC, sockets, head-of-line blocking, and latency vs. throughput
Lecture Notes Notes
Additional Notes Notes
Lecture Slides
Study Guide Terms
Terms You Should Know Terms
Week 2 Remote Procedure Calls and Web Services
Topics
-
Remote procedure calls (RPC), stubs, versioning
-
Data serialization and deserialization
-
Web services: XML-RPC/SOAP/REST, gRPC, observability
Lecture Notes Notes
Lecture Slides
RPC Examples Terms
Study Guide Terms
Terms You Should Know Terms
Week 3 Clock Synchronization & Logical Clocks
Topics
-
Physical clock synchronization: drift, skew, slewing
-
Cristian’s algorithm, NTP, PTP
-
Logical clocks: concurrent and causal evemts
-
Lamport, Vector timestamps, hybrid logical clocks
Lecture Notes Notes
Lecture Slides
Study Guide Terms
Terms You Should Know Terms
Week 4 Mutual Exclusion, Leader Election, and Group Communication
Topics
-
Mutual exclusion algorithms: centralized, Lamport’s, Ricart-Agrawala, Token Ring
-
Leader election: Bully and Ring
-
Group communicatin: order, reliability, IP multicast
-
Group management: virtual synchrony