Distributed Systems Course

This course generally offered every fall.
Textbooks

  1. Distributed systems: Principles and Paradigms, Andrew S. Tanenbaum, Maarten van Steen, 2nd ed, 2007
  2. Distributed systems: Principles and Paradigms, Andrew S. Tanenbaum, Maarten van Steen, 3rd ed, 2017
  3. Distributed Systems: Concepts and Design ▸ George Coulouris, Gordon Blair, 5th ed, 2012
Grading

  • midterm: 40%
  • final: 45%
  • research: 15%
Class Notes

 

Topics Class Notes
week 1 Introduction 01_intro.pdf
Communication 02_communication.pdf
(Update: 2022-Dec-28)
week 2
  • RPC
    • RPC semantics in failure
  • RMI
 
week 3
  • Message Queuing Systems
    • Messaging patterns (pub/sub, broker, pipeline, ...)
  • MPI
  • Distributed Shared Memory
    • Tuple Spaces
 
week 4
  • Broadcast & Multicast
  • Epidemic Broadcast
    • Gossiping
    • Rumor Spreading
 
Distributed Coordination 03_coordination.pdf
(Update: 2022-Dec-28)
week 5
  • Basic Concepts
    • Clock & Time
    • Clock Drift
  • Time Synchronization algorithms
    • NTP
 
week 6
  • Logical Clock
  • Totally Ordered Multicast
 
week 7
  • Vector Clock
  • Casually Ordered Multicast
 
week 8
  • Distributed Mutual Exclusion
  • Distributed Leader Election
 
week 9
  • Global States & Snapshots
  • Distributed Debugging
 
Naming 04_naming.pdf
(Update: 2022-Dec-28)
week 10
  • Flat & Hierarchical Naming Methods
  • Consistent Hashing
  • Distributed Hash Table (DHT)
  • CDN (Content Distribution Networks)
 
week 10-11
  • Peer-to-Peer Networks
    • Bit-torrent Networks
    • Chord
    • Pastery
    • CAN
    • Tapestry
  • Named-data Networking (Content-Centric Networks)
 
  Midterm  
Consistency 05_consistency.pdf
(Update: 2022-Dec-28)
week 12
  • Consistency Models
    • Data-centric Consistency Models
    • Client-centric Consistency Models
  • Consistency Protocols
 
Fault Tolerant Systems 06_fault_tolerance.pdf
(Update: 2022-Dec-28)
week 13
  • Definitions
  • Surviving from faults
  • Fault Types
  • Flooding Consensus
 
week 14
  • Distributed Commit
    • 2PC algorithm (2-phase commit)
    • 3PC algorithm (3-phase commit)
  • Paxos
  • Raft
 
Byzantine Fault Tolerant Systems 07_fault_tolerance_2.pdf
(Update: 2022-Dec-28)
week 15
  • Byzantine Faults
  • Byzantine Generals Problem
    • Synchronous Oral Message solution
    • Synchronous Signed Message solution
  • PBFT Algorithm
 
Distributed File Systems 08_dfs_gfs.pdf
week 16
  • Distributed File Systems
    • NFS
    • Andrew File System
    • Coda File System
  • Google File System (gfs)
 
NoSql Databases 09_nosql_dynamo.pdf
(Update: 2022-Dec-28)
week 17
  • NoSql Database Types
  • Amazon Dynamo
 
Blockchain & Crypto-Currencies 10_blockchain.pdf
(Update: 2022-Dec-28)
week 18
  • Blockchain Concept
  • Cryptocurrency concepts
  • Consensus algorithms in public blockchains
    • Bitcoin proof-of-work consensus
    • Proof-of-Stake consensus