The key objective of the seminar is to teach students the design, details, and challenges associated with building high-performance distributed systems using modern hardware. The secondary goal is to educate students how to read papers, write reviews, and give informative presentations in an interactive setting. The course takes a form of an interactive seminar (presentations and discussions) that is based on a selection of recently published papers that have a strong impact on the design of distributed systems. Upon completion of this course, students will be able to:
We will cover recent advancements in the networking technologies, high-performance network APIs, Remote Direct Memory Access (RDMA) networking, modern Remote Procedure Call (RPC) frameworks, distributed transactions, design of cloud-scale storage systems, design of commercial cloud stacks (Google, Facebook, Microsoft), distributed tracing and performance analysis frameworks, and emerging topics (serverless, machine learning, rack-scale computing, edge computing), etc. We will provide a curated list of recently published papers to cover these topics. The acquisition of this knowledge is important to understand how the field of distributed systems is emerging, and how future cloud/distributed systems in practice will be shaped.