CS 3410: Distributed Systems

Spring 2022 Topic Project (due Wednesday) Paper (due Friday)
Jan 10–14 Go, RPC Go basics 1–3 1. Google File System
Jan 17–21 (MLK Day) Go examples Go basics 4–7 2. Bigtable
Jan 24–28 Effective Go, replicated state machines Go basics 8–12 3. Paxos
Jan 31–Feb 4 TCP, sockets, clusters Paxos: prepare 4. Case study: Google
Feb 7–11 coherent caching, CAP Paxos: accept and decide 5. Chubby
Feb 14–18 transactions, 2-phase commit MUD command parser 6. Megastore
Feb 21–25 (Presidents’ Day) time, clocks, snapshots MUD single player 7. Spanner
Feb 28–Mar 4 peer to peer MUD multi player 8. Chord
Mar 7–11 concurrency, actors Chord: linked list ring 9. Case study: Facebook
Mar 14–18 (Spring break)
Mar 21–25 databases Chord: full chord protocol 10. Calvin
Mar 28–Apr 1 big data 11. MapReduce
Apr 4–8 SOA, microservices MapReduce: database handling 12. Case study: Twitter
Apr 11–15 eventual consistency MapReduce: map and reduce 13. Dynamo
Apr 18–22 MapReduce: master node 14. RDDs (Spark)
Apr 25–29 (Wednesday last day)

Changes to the schedule will be announced in class.


Code to discover your own IP address. This does not work in all cases, but it is a useful starting point:


  1. The Google File System
  2. Bigtable: A Distributed Storage System for Structured Data
  3. Paxos
  4. Case study: Google
  5. The Chubby lock service for loosely-coupled distributed systems
  6. Megastore: Providing Scalable, Highly Available Storage for Interactive Services
  7. Spanner: Google’s Globally-Distributed Database
  8. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
  9. Case study: Facebook
  10. Calvin: Fast Distributed Transactions for Partitioned Database Systems
  11. MapReduce: Simplified Data Processing on Large Clusters
  12. Case study: Twitter
  13. Dynamo: Amazon’s Highly-available Key-value Store
  14. Resilient Distributed Datasets: A Fault-Tolerant Abstration for In-Memory Cluster Computing


Last Updated 05/02/2022