- Sep 17 (Th) Scala/Akka warmup: publish-subscribe service using a key-value store
- Oct 1 (Th) Lab #2: lease/lock service
- Oct 5 (M) Project proposal (a few paragraphs)
- Oct 6 (T) Midterm exam
- Oct 20 (T) Lab #3: atomic transactions.
Extended to 10/23
- Nov 3 (T) Midterm exam
- Nov 10 (T) Lab #4: consensus (deferred, then declared optional on 11/5)
- Dec 6-7 Project demo/presentation, reports due
- Dec 8 (T) Final exam (7:00 PM - 10:00 PM)
You can find a general plan for the topics on the topics page. Here is what actually happened.
Note: this is an archived course. A newer version of the
slides may be available. Please contact me if you want slides for
use outside of Duke.
- Intro slides [PPTX]
- For 8/27: the CAP revisited paper and 2PC [PDF] and Your Coffee Shop Doesn't
Use Two-Phase Commit [PDF]. slides [PPTX]
- For 9/1: leases and cache consistency. slides [PPTX]
- Lab #1 (GroupService) is due on 9/17.
Take a careful look at the rings example in the course git repository. This document [PDF] discusses the
rings example and relevant features of Akka and Scala.
- For 9/8: Chubby [PDF]. slides [PPTX]
- For 9/10: Consistency: what does it mean? Basics of
transactional serializability. Reading: selected portions of Concurrency Control and
Recovery. The point is to understand conflict serializability.
We will also touch on logging, so if you haven't seen write-ahead logging before, you should read that
too. Basically that means read through 3.1.1, but don't worry too much
about the buffering models. We won't discuss Eventual
Consistency Today (listed as optional reading). slides for 9/10 [PPTX]
- For 9/15-9/22: Dynamo key-value store in three parts: consistency model and
failures (9/15); consistent hashing, partitions, and membership (9/17); sloppy
quorum and the latency/consistency tradeoff. slides for Dynamo [PPTX]. Optional
reading for 9/22: Quantifying
eventual consistency with PBS.
- For 9/24: slides for logical clocks
[PPTX].
- For 9/29...: slides for vector clocks and Bayou
[PPTX]. (Various other topics also discussed.)
- Midterm #1 results are in. midterm
#1 [PDF], midterm
#1 solutions [PDF]
- For 10/15, we discuss the midterm, transactions (for Lab #3 and
to prepare for Spanner), and Paxos usage model. Slides: [PDF], [PPTX]
- Reading for 10/20-22 and following week (PDFs): Spanner, From Viewstamped Replication to BFT
(7.1-7.6). The Spanner paper is not written as clearly as we would
like: this Distributed Computing column
[PDF] summarizes the transaction mechanisms more clearly.
- Slides for 10/22 (Spanner) [PDF], [PPTX]
- Slides for 10/27-29 (Consensus) [PDF], [PPTX]
- Slides for 11/6 (BFT) [PDF], [PPTX]
- Midterm #2 results are in. midterm
#2 [PDF], midterm
#2 solutions [PDF]
- Slides for 11/10-12 (Crypto and authentication) [PDF], [PPTX]
- Reading for 11/12. Liskov on Kerberos: Uses of Synchronized Clocks
[PDF], Section 4. Also, we will discuss BAN logic [PDF] (optional, but it
will be useful to read at least the first few pages). This paper has
a somewhat more detailed summary of Kerberos in its Section 4.
- Slides for 11/12 (Kerberos, BAN): [PDF], [PPTX]
- Reading for 11/17: Bitcoin. The Oakland 2015 paper [PDF] is
an authoritative overview of the topic. The authors also have some
draft chapters of their book available (collected here), which is more tutorial. I recommend reading chapters 1-3.
- Slides for 11/17 (Bitcoin): [PDF], [PPTX]
- Reading for 11/19 and 11/24: SAFE logic-based authorization. This is a
shortened version of an unpublished paper.
- Slides for 11/19 and 11/24 (HTTPS, authorization, logical trust, DNSSEC): [PDF], [PPTX]