Syllabus

The syllabus, time requirements, grading policy, information about accommodations, and more can be found in our updated syllabus.

Grading

Your final grade for the course will be based on the following items:

  • 50% Programming Projects (4)
  • 20% Homeworks (4)
  • 10% Online Quizzes (2)
  • 10% Final Exam
  • 10% Course Participation

The four written homework assignments will all be done individually. The programming programs will be completed in groups of two (2).

Textbook

You can follow the content of the course using Distributed Systems: Concepts and Design (5th Edition). We will indicate besides each lecture below which sections of the textbook correspond to the lecture.

Programming Help

The TAs have put together two very useful guides to get started with Go and with Git. Check them out below:

More links:

Schedule

Date Topics Notes Readings
Thu 01/23 L1 - Introduction to CS 138
See L12
Tue 01/28 L2 - D.S. Principles
Dist Intro
Thu 01/30 L3 - Networking
[screencast]
Tue 02/04 L4 - Load Balancing
[screencast]

(Optional) Consistent Hashing
Thu 02/06 L5 - Load Balancing, Consistent Hashing
[screencast]

(Optional) Consistent Hashing
Tue 02/11 L6 - Consistent Hashing, Time (Logical Clocks)
[screencast]

(Optional) Consistent Hashing
Thu 02/13 L7 - Time (Logical Clocks, Global State (Distributed Snapshots))
[screencast]
Chapter 14
Tue 02/18 No Class
Long Weekend
Thu 02/20 L8 - Distributed hash tables
[screencast]
(Optional) ChordTapestry
Tue 02/25 L9 - Distributed hash tables
[screencast]
Thu 02/27 L10 - Consistency (Active, Passive, Lazy Replication)
Chapter 18 (Optional) Raft (Passive Replication); Lazy Replication
Tue 03/03 L11 - Consistency (Active, Passive, Lazy Replication)
[screencast]
Chapter 18 (Optional) Raft (Passive Replication); Lazy Replication
Thu 03/05 L12 - Consistency (Active, Passive, Lazy Replication)
[screencast]
Notes L1 - L12 Chapter 18 (Optional) Raft (Passive Replication); Lazy Replication
Tue 03/10 No Class
Thu 03/12 L13 -
[screencast]
Tue 03/17 No Class
Thu 03/19 No Calss
Tue 03/24 No Class
Spring Recess
Thu 03/26 No Class
Spring Recess
Tue 03/31 L14 - Consistency (Active, Passive, Lazy Replication)
[.pdf] [screencast]
Chapter 18 (Optional) Raft (Passive Replication); Lazy Replication Consensus in the Cloud
Thu 04/02 L15 - Consistency (Active, Passive, Lazy Replication)
[.pdf] [screencast]
Marked Up Slides Chapter 18, Chapter 17
Tue 04/07 L16 - Consistency (Active, Passive, Lazy Replication)
[.pdf] [screencast]
Marked Up Slides
Thu 04/09 L17 - Distributed Transactions
[.pdf] [screencast]
Tue 04/14 L18 - Distributed Transactions
[.pdf] [screencast]
Thu 04/16 L19 - Invited Lecture - Nathan Bronson (from Facebook)
[screencast]
Tue 04/21 L20 - Practical Consensus
[.pdf] [screencast]
Google's Chubby FB's Zookeeper
Thu 04/23 L21 - Industry Applications
[.pdf] [screencast]
AWS's DynamoDB FB's Cassandra
Tue 04/28 L22 - Distributed File Systems
[.pdf] [screencast]
FB's Zookeeper Kafka
Thu 04/30 L23 - Guest Lecture - Vesselina Ratcheva (from MongoDB)
Thu 04/30 L23 - Distributed File Systems Continued
[.pdf]
Thu 04/30 L23 - Zoopeeker Overview
[.pdf]
Fri 05/15 Final
Final Notes