CS 253:  Distributed Systems



–Sproul Hall 2340. MWF 4:00-4:50

Office hours: On demand; T 4-5 p.m.


This course provides an introduction to distributed systems.  The topics covered include consistency across machines, consensus across machines, MapReduce, Distributed hash tables, Fault tolerance etc. 


The material is primarily from the book Distributed Systems by Maarten Van Steen and Andrew Tanenbaum.  A PDF version is downloadable from here.


A lot of the material/slides have also been borrowed from the distributed systems (EECS 498) course/webpage developed by Prof. Harsha Madhyastha at the University of Michigan  (thanks Harsha!).


The slides will be posted here and will be the basis for all the quizzes. 


1.    Introduction


2.    MapReduce in brief


3.    Communications


4.    Synchronization and Logical Clocks


5.   Mutual Exclusion and Election


6.   Distributed Snapshotting/Checkpointing


7.   Consistency and Replication


8.   Paxos and Consensus


9.   Byzantine Failures and CAP Theorem


10.                 Chubby and Zookeeper


11.                 DHTs and Amazon Dynamo


12.                 Reliable Group Communications and Transactions


13.                 Blockchains and Bitcoin


14.                 Speculative Paxos