Large-scale distributed systems have become pervasive, underlying virtually
all widely used services. In tandem, our understanding of how to build
scalable, robust, efficient, and secure systems is increasingly
well-founded. This class will attempt to bring students to the state of the
art in distributed systems research and practice as well as to identify a
set of open research problems.
This course will focus on correctness
and performance. Distributed systems are particularly difficult
to optimize while retaining their correctness. Concurrent updates to
distributed state introduce subtle race conditions. Component failures
are inevitable, and "distributed" means the system is expected to
proceed despite them. What invariants and progress conditions ensure
that systems operate correctly despite concurrency and failures?
You should have
taken the equivalent of CSE
Further, we'll assume basic knowledge of distributed-systems topics,
including: remote procedure calls (RPC), two-phase commit, distributed
time, serializability, and MapReduce. This can be obtained by
(which is the normal order). A motivated student will be able to
pick up these topics on their own. See below for some useful resources.
Students having taken an undergraduate distributed-systems
class will find about 25% of the material will overlap.
Instructor Contact and Office Hours
|Arvind Krishnamurthy, Instructor
|| Friday 10:00-11:00, CSE 592
|Lequn Chen, TA
||Monday 10:00-11:00, CSE 220
When you register for the course, you'll automatically be added to the
class mailing list (firstname.lastname@example.org). To manage your subscription,
list web page
. You've been subscribed using your
email address. You can, however, modify your
subscription to use an email address of your choice. Note that you
can only post to the mailing list from your subscribed email address.
Reading and Discussion
Each class will focus on a single topic, with discussion oriented around
two papers. Generally, one of those papers is mandatory for you to
have read before the class and the other is optional.
The class discussion will be divided into two parts. First, we'll discuss
the plain content of the paper: What did the authors think the paper was
about? Second, we'll examine the subtext and context of each paper: What do
we (the lecturers and the students) think is really interesting about the
paper? For instance, what limits and opportunities does the paper
For the first part of the discussion, we'll lecture
on mechanical elements of the papers that are hard to discuss without
prepared slides. We'll then kick off an interactive
discussion. The class-participation portion of your grade will depend on
the extent to which you participate meaningfully in each such