Distributed Systems, Winter 2018




Tentative schedule for lectures, exams and project deadlines (all lectures held in room 0.29, building E 1.5 in SB and room 111, building G26 in KL). All information is subject to change.

We wish to thank our colleagues at MIT for sharing their course materials. 







15 Oct (Peter)
LEC 1: Intro: Distributed systems / Project Overview

17 Oct (Peter)
LEC 2: Infrastructure: Implementing RPCs
Preparation: Read Implementing Remote Procedure Calls

19 Oct

Assignment: Lab 1: Lock Server

22 Oct (Antoine Kaufmann)
LEC 3: Infrastructure: Programming with threads
Preparation: Read Threads in C#

24 Oct (Jonathan Mace)
LEC 4: Consistency: Sequential consistency
Preparation: Read Shared Virtual Memory

29 Oct (Peter)
LEC 5: Consistency: Relaxed Consistency
Preparation: Read TreadMarks

31 Oct (Peter)
LEC 6: Consistency: Timestamps and version vectors
Preparation: Read Tra

2 Nov
Due: Lab 1 (11:59pm)
Assignment: Lab 2: Basic File Server

5 Nov (Deepak)
LEC 7: Distributed programming: MapReduce and Pig
Preparation: Read MapReduce paper

7 Nov (Deepak)
LEC 8: Google File System (GFS) (slides)
Preparation: Read GFS paper

9 Nov
Due: Lab 2 (11:59pm)
Assignment: Lab 3: Reading, Writing, and Sharing Files

12 Nov (Deepak)
LEC 9: Eventual Consistency
Preparation: Read Bayou

14 Nov  (Deepak)
LEC 10: Fault Tolerance: Crash recovery and logging
Preparation: Read Cedar

16 Nov
Due: Lab 3 (11:59pm)
Assignment: Lab 4: MKDIR, REMOVE, and Locking

19 Nov  (Deepak)
LEC 11: Fault Tolerance: Two-phase commit
Preparation: Read Argus

21 Nov (Deepak)
LEC 12: Fault Tolerance: Replicated state machines
Preparation: Read Hypervisor

23 Nov

Due: Lab 4 (11:59pm)
Assignment: Lab 5: Caching Lock Server

26 Nov (TAs)

Review session

28 Nov (TAs)
Midterm exam (SB: E1.3, HS001)
In class. Open book and notes.
Scope: Lectures 1-12

30 Nov

3 Dec (Deepak)
LEC 13: Chain replication

Preparation: Read Chain Replication



5 Dec (Peter)
LEC 14: Fault Tolerance: Consensus (slides)
Preparation: Read Paxos

16 Dec

10 Dec (Peter)
LEC 15: Zookeeper

Preparation: Read Zookeeper (2010)

12 Dec (Krishna)

LEC 16: Naming, Addressing, and Routing: Flooding

14 Dec

Due: Lab 5 (11:59pm)
Assignment: Lab 6: Caching Extent Server + Consistency

17 Dec (Krishna)
LEC 17: Naming, Addressing, and Routing: Hierarchical
Preparation: Read DNS

19 Dec (Krishna)
LEC 18: Naming, Addressing, and Routing: DHTs
Preparation: Read Chord

21 Dec
Due: Lab 6 (11:59pm)
Assignment: Lab 7: Paxos

7 Jan (Peter)

LEC 19: Content Distribution: Hierarchical DHTs
Preparation: Read Coral

9 Jan (Peter)
LEC 20: Content Distribution: Swarming

Preparation: Read BitTorrent and BitTyrant

14 Jan (Krishna)
LEC 21:Blockchains: Accountability with Tamper-Proof Logs

Preparation: Read Trusted Time-Stamps and PeerReview

16 Jan (Krishna)
LEC 22:  Decentralized Ledgers: Consensus with PoW

Preparation: Read BitCoin (Sections 2 and 3)

18 Jan

Due: Lab 7 (11:59pm)
Assignment: Lab 8: Replicated State Machine

21 Jan (Krishna)
LEC 23:Decentralized Ledgers: Consensus with PoS

Preparation: Read Proof-of-Activity

23 Jan
Cancelled: : Watch Lecture on BitCoin

28 Jan (Krishna)
LEC 24:Decentralized Ledgers: Generalizing Transactions to Smart Contracts

Preparation: Read Ethereum

30 Jan (Krishna)
LEC 25: Decentralized Trust Networks & Personalization of Trust

Preparation: Read Credit Networks and Ostra

1 Feb

Due: Lab 8 (11:59pm)

4 Feb

Review session

6 Feb

Final exam (SB: E1.3, HS003)

In class. Open book and notes.
Emphasis is on Lectures 13-26.

8 Feb



4 April

Repeat exam (SB: E1.3, HS003)


Open book/notes.

Scope: Lectures 1-26


Imprint / Data Protection