Distributed Systems Seminar by Peter Alvaro.
From the webpage:
Description
This graduate seminar will explore distributed systems research, both current and historical, with a particular focus on storage systems and programming models.
Due to fundamental uncertainty in their executions arising from asynchronous communication and partial failure, distributed systems present unique challenges to programmers and users. Moreover, distributed systems are increasingly ubiquitous: nearly all non-trivial systems are now physically distributed. It is no longer possible to relegate responsibility for managing the complexity of distributed systems to a group of expert library or infrastructure writers: all programmers must now be distributed programmers. This is both a crisis and an opportunity.
A great deal of theoretical work in distributed systems establishes important impossibility results, including the famous FLP result, the CAP Theorem, the two generals problem and the impossibility of establishing common knowledge via protocol. These results tell us what we cannot achieve in a distributed system, or more constructively, they tell us about the properties we must trade off for the properties we require when designing or using large-scale systems. But what can we achieve? The history of applied distributed systems work is largely the history of infrastructures — storage systems as well as programming models — that attempt to manage the fundamental complexity of the domain with a variety of abstractions.
This course focuses on these systems, models and languages. We will cover the following topics:
- Consistency models
- Large-scale storage systems and data processing frameworks
- Commit, consensus and synchronization protocols
- Data replication and partitioning
- Fault-tolerant design
- Programming models
- Distributed programming languages and program analysis
- Seminal theoretical results in distributed systems
Readings
This course is a research seminar: we will focus primarily on reading and discussing conference papers. We will read 1-2 papers (typically 2) per session; for each paper, you will provide a brief summary (about 1 page). The summary should answer some or all of the following questions:
- What problem does the paper solve? Is is important?
- How does it solve the problem?
- What alternative approaches are there? Are they adequately discussed in the reading?
- How does this work relate to other research, whether covered in this course or not?
- What specific research questions, if any, does the paper raise for you?
…
What a great list of readings!
An additional question of each paper: Does It Account For Hostile Environments?
As Alvaro says: “…nearly all non-trivial systems are now physically distributed.”
That’s a rather large attack surface to leave for unknown others, by unknown means, to secure to an unknown degree, on your behalf.
If you make that choice, add “cyber-victim” to your business cards.
If you aren’t already, you will be soon enough.