CS 425: Syllabus and Readings

Topics:

  • Introduction
  • Course outline and purpose
  • Model of a distributed system: asynchronous message-passing model
  • Readings: Section 2.1 of Attiya-Welch
  • Properties of distributed algorithms
  • Time and message complexity
  • Safety and liveness properties
  • Time in an asynchronous system
  • Basic algorithms
  • Broadcast and convergecast algorithms
  • Spanning trees of various kinds
  • Readings: Section 2.2-2.5 of Attiya-Welch
  • Leader election
  • Leader election in rings
  • Asynchronous leader election with identities
  • Synchronous leader election by abusing the synchronous model
  • Readings: Section 3.1-3.4 of Attiya-Welch
  • Logical clocks and causality
  • Logical clocks and vector clocks
  • Snapshots and synchronization
  • Readings: Section 6.1-6.2 of Attiya-Welch
  • Distributed databases (Guest lectures by Nick Bowen, IBM.)
  • Transaction concepts
  • Distributed two-phase commit
  • Designing reliable systems (Guest lectures by Nick Bowen, IBM.)
  • Tightly-coupled cluster systems
  • Reliable communication, availability
  • Peer to peer networks
  • Napster, Gnutella, Freenet
  • Resource discovery in distributed systems
  • Distributed hash tables
  • Structured overlay networks
  • Chord, Pastry, Tapestry, CAN
  • Skip graphs
  • Applications using structured overlays
  • Unstructured overlay networks
  • Resilient overlay networks
  • End-system multicast
  • NICE
  • Internet traffic
  • Internet service providers and peering
  • Inter-AS traffic patterns
  • Traffic engineering
  • Broadcast and multicast
  • Broadcast services
  • Causally-ordered reliable broadcast
  • Group multicast and applications
  • Readings: Section 8.1-8.4 of Attiya-Welch
  • Routing
  • Routing protocols in wired networks
  • Routing in wireless and sensor networks
  • Internet routing
  • Internet routing convergence
  • Policy routing
  • Network proximity and positioning
  • Advanced topics
  • Distributed graph algorithms
  • Paxos consensus
  • Impossibility results
  • Shared memory
  • Mutual exclusion: tournament algorithm, bakery algorithm
  • Complexity measures for shared-memory algorithms
  • Readings: Section 4.1-4.4 of Attiya-Welch
  • Distributed shared memory
  • Linearizability
  • Sequential consistency
  • Readings: Chapter 9 of Attiya-Welch