CS 3410: Distributed Systems

Spring 2021 Paper (due Wednesday) Topic Project
Jan 11–15 1. Google File System the internet Go tour
Jan 18–22 (MLK Day) 2. Bigtable Go, RPC
Jan 25–29 3. Spanner peer-to-peer MUD: command interpreter
Feb 1–5 4. Case study: Google concurrency MUD: single user
Feb 8–12 5. Chord
Feb 15–19 (Presidents’ Day) 6. FLP MUD: multi user
Feb 22–26 7. Case study: Facebook containers Chord: linked list ring
Mar 1–5 8. Paxos Chord: full chord protocol
Mar 8–12 (Spring break)
Mar 15–19 9. PBFT consensus
Mar 22–26 10. Bitcoin Paxos: synod simulator
Mar 29–Apr 2 11. MapReduce
Apr 5–9 12. Case study: Twitter databases MapReduce: database handling
Apr 12–16 13. RDDs (Spark) MapReduce: map and reduce
Apr 19–23 14. Bayou MapReduce: master node
Apr 26–30 (Wednesday last day)



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
    • Suppose a large GFS cluster is running in a steady state with all nodes stable and then a client wanted to read a file from beginning to end. Describe the sequence of events that will take place, including network messages and disk lookups. At each step, explain how the node that receives a request is able to fulfil it/why it has the data that is requested.
  2. Bigtable: A Distributed Storage System for Structured Data
  3. Spanner: Google’s Globally-Distributed Database
  4. Case study: Google
  5. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
  6. Impossibility of Distributed Consensus with One Faulty Process
  7. Case study: Facebook
  8. Paxos
  9. Practical Byzantine Fault Tolerance
  10. Bitcoin: A Peer-to-Peer Electronic Cash System
  11. MapReduce: Simplified Data Processing on Large Clusters
  12. Case study: Twitter
  13. Resilient Distributed Datasets: A Fault-Tolerant Abstration for In-Memory Cluster Computing
  14. Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System


Last Updated 04/28/2021