A full list of planned lectures is shown below. Note that all URL links for future lectures have been disabled and lecture links will be activated on the day of each class. We will try to upload lecture slides prior to their corresponding classes. Videos and lectures notes will be made available after each class.

  • Lec 01: Introduction
    tl;dr: Introduction to Distributed Systems and class logistics
    [slides] [notes] [video]
  • Lec 02: System Architectures
    tl;dr: Distributed Systems architectures
    [slides] [video] [notes]

    Suggested Readings:

  • Lec 03: Communication in distributed systems
    tl;dr: Message oriented communication, remote procedure calls
    [slides] [video] [notes]

    Lablet 1 released (Due 2/20, 23:59)

  • Lec 04: Remote method invocation
    tl;dr: RPC models, RMI, gRPC, protoBuf, pyRO
    [slides] [video] [notes]
  • Lec 05: Concurrency Models
    tl;dr: Threading, dynamic thread pools, event loop model, thread/process scheduling
    [slides] [video] [notes]

    Lablet 2 released (Due 3/10, 23:59)

  • Lec 06: Sustainable Computing
    tl;dr: Guest lecture
    [slides] [video] [notes]
  • Lec 07: Distributed and cluster scheduling
    tl;dr: Distributed scheduling, cluster scheduling, Mesos, Borg
    [slides] [video] [notes]
  • Lec 08: Cluster scheduling, Virtualization
    tl;dr: Cluster scheduling, virtualization
    [slides] [video] [notes]
  • Lec 09: OS Virtualization
    tl;dr: OS virtualization, containers, fair scheduling, docker
    [slides] [video] [notes]

    Lablet 3 released (Due 3/22, 23:59)

  • Lec 10: OS Virtualization and Process Migration
    tl;dr: OS virtualization, docker, process migration
    [slides] [video] [notes]
  • Lec 11: VM/container Migration and Orchestration
    tl;dr: VM migration, container migration, Cloud computing
    [slides] [video] [notes]
  • Lec 12: Cloud computing, Clock synchronization
    tl;dr: Data centers and Cloud computing
    [slides] [video] [notes]
  • Lec 13: Clock synchronization and Logical clocks
    tl;dr: Clock synchronization, GPS, logical clocks
    [slides] [video] [notes]
  • Lec 14: Vector clocks and distributed snapshots
    tl;dr: Vector clocks, distributed snapshots
    [slides] [video] [notes]

    Lablet 4 released (Due 4/06, 23:59)

  • Lec 15: Leader election, Distributed locks
    tl;dr: Leader election, distributed mutual exclusion
    [slides] [video] [notes]
  • Lec 16: Distributed transactions
    tl;dr: Distributed transactions, concurrency control, two phase locks
    [slides] [video] [notes]
  • Lec 17: Consistency models
    tl;dr: Linearizability, serializability, eventual consistency, epidemic protocols
    [slides] [video] [notes]
  • Lec 18: Replication in distributed systems
    tl;dr: Replicated write protocols, quorum protocols
    [slides] [video] [notes]

    Lablet 5 released (Due 4/22, 23:59)

  • Lec 19: Byzantine Fault Tolerance (BFT)
    tl;dr: BFT, Byzantine generals problem, reliable communication, distributed commit, 2PC, 3PC
    [slides] [video] [notes]
  • Lec 20: Distributed consensus, paxos, RAFT
    tl;dr: consensus, paxos, RAFT
    [slides] [video] [notes]
  • Lec 21: Distributed web services
    tl;dr: Web servers, web clusters, mluti-tier applications, micro-services
    [slides] [video] [notes]
  • Lec 22: Edge computing, web caching
    tl;dr: Edge computing, web caching, edge content delivery
    [slides] [video] [notes]
  • Lec 23: Distributed file systems
    tl;dr: Distributed file systems
    [slides] [video] [notes]
  • Lec 24: xFS, Coda, HDFS, GFS
    tl;dr: Distributed file systems: xFS, Coda, HDFS, GFS
    [slides] [video] [notes]
  • Lec 25: Distributed middleware
    tl;dr: Distributed objects, EJBs, blackboard architectures, distributed data processing, Hadoop, Spark
    [slides] [video] [notes]
  • Lec 26: Distributed systems security
    tl;dr: Authentication, cyptography basics, blockchain, electronic payments
    [slides] [video] [notes]
  • Lec 27: Pervasive computing and Multimedia computing
    tl;dr: Pervasive computing, IoT, IoT applications
    [slides] [video] [notes]