1. |
Introduction |
|
|
Introduction to the course |
Reading: Introduction to Distributed System Design |
2. |
Programming distributed systems |
|
|
Threads and concurrency |
Code: Hello World Code: Web Crawler |
|
Models of distributed systems |
|
|
Remote procedure calls |
Code: RPC Reading: Implementing Remote Procedure Calls |
|
Time in distributed systems |
Reading: Time, Clocks, and the Ordering of Events in a Distributed System Reading: Clock Synchronization |
|
Broadcast communication |
Reading: Broadcast mechanisms |
3. |
Distributed storage systems |
|
|
Data consistency and linearizability |
|
|
Crash recovery |
Slides: Transaction Recovery |
4. |
Replicated storage systems |
|
|
Replication |
|
|
Consensus |
|
|
Case Study 1: Consensus in Raft |
Reading: In Search of an Understandable Consensus Algorithm (Extended Version) Video: In Search of an Understandable Consensus Algorithm Animation: The Secret Lives of Data |
5. |
Scalable storage systems |
|
|
Consistency models |
Reading: CAP Twelve Years Later: How the "Rules" Have Changed Reading: Clarifications On The CAP Theorem And Data-Related Errors Reading: Eventually Consistent Reading: Replicated Data Consistency Explained Through Baseball |
|
Case Study 2: Coordination with ZooKeeper |
Reading: ZooKeeper: Wait-free Coordination for Internet-scale Systems Video: ZooKeeper: Wait-free Coordination for Internet-scale Systems |
|
Case Study 3: Scalable Caching with Memcache |
Reading: Scaling Memcache at Facebook Video: Scaling Memcache at Facebook Reading: TAO: Facebook's Distributed Data Store for the Social Graph |
|
Case Study 4: Dynamo: Highly Available KV Store |
Reading: Dynamo: Amazon's Highly Available Key-Value Store Video and Experiences: Amazon's DynamoDB - 10 years later |
6. |
Transactional storage systems |
|
|
Transactions and concurrency control |
|
|
Distributed transactions and atomic commit |
|
7. |
Byzantine storage systems |
|
|
Byzantine fault tolerance |
Reading: Practical Byzantine Fault Tolerance Video: Practical Byzantine Fault Tolerance |
|
Case Study 5: Bitcoin |
Reading: Bitcoin: A Peer-to-Peer Electronic Cash System Reading: How the Bitcoin Protocol Actually works |