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?
General information:
You should have
taken the equivalent of
CSE
550
or
CSE
551
or
CSE
451
or
CSE
452.
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
taking
CSE
550
before
CSE
552 (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
Person, Role |
email |
Office Hours |
Arvind Krishnamurthy, Instructor |
arvind@cs |
Friday 10:00-11:00, CSE 592 |
Lequn Chen, TA |
lqchen@cs |
Monday 10:00-11:00, CSE 220 |
Mailing List
When you register for the course, you'll automatically be added to the
class mailing list (cse552a_au19@uw.edu). To manage your subscription,
visit
the
mailing
list web page. You've been subscribed using your
u.washington.edu 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
miss?
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
discussion.