Advanced Topics in Cloud and Datacenter Systems

Summer Semester 2020

Max Planck Institute for Software Systems and Saarland University
Instructor: Jonathan Mace
Monday 12pm - 2pm
Zoom (meeting link by e-mail)


Classes will be held on Zoom - check your inbox for the meeting URL.

Date Topic Presenter Papers
18/5 Introduction Jonathan - class introduction
Roberta - MapReduce
Vaastav - GFS
  • The Datacenter as a Computer, Chapter 1 (no review required)
  • MapReduce: Simplified Data Processing on Large Clusters
  • The Google File System
25/5 Big Data (Guido) - RDDs
Thomas - Naiad
  • Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing
  • Naiad: A Timely Dataflow System
1/6 Data Stores No class due to public holiday but reviews are still due!
  • Bigtable: A Distributed Storage System for Structured Data
  • Dynamo: Amazon's Highly Available Key-Value Store
8/6 Microservices (Reyhaneh) - Bigtable
Marlene - Benchmark
  • Microservices introduction (no review required)
  • The Tail at Scale
  • An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems
15/6 Orchestration Mei - Borg
Mazen - Autopilot
  • Large-Scale Cluster Management at Google with Borg
  • Autopilot: Workload Autoscaling at Google
22/6 Serverless 1 Guido - OpenLambda
Safya - Shuffling
  • Serverless Computation with OpenLambda
  • Shuffling, Fast and Slow: Scalable Analytics on Serverless Infrastructure
29/6 Serverless 2 Gerd - Serverless Forward, Back
Jannis - Serverless in the Wild
  • Serverless Computing: One Step Forward, Two Steps Back
  • Cloud Programming Simplified: A Berkeley View on Serverless Computing (no review required)
  • Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider
6/7 Workloads & Performance Sepehr - Resource Central
Thomas - Performance Analysis
  • Resource Central: Understanding and Predicting Workloads for Improved Resource Management in Large Cloud Platforms
  • Performance Analysis of Cloud Applications
13/7 Tracing Vaastav - Pivot Tracing
Gerd - Canopy
  • Pivot Tracing: Dynamic Causal Monitoring for Distributed Systems
  • Canopy: An End-to-End Performance Tracing and Analysis System
20/7 Machine Learning Kevin - Parameter Server
Sepehr - Ray
  • Scaling Distributed Machine Learning with the Parameter Server
  • Clipper: A Low-Latency Online Prediction Serving System (no review required )
  • Ray: A Distributed Framework for Emerging AI Applications
27/7 Geo-Distribution Reyhaneh - Spanner
Pengqiu - TAO
  • Spanner: Google's Globally Distributed Database
  • TAO: Facebook's Distributed Data Store for the Social Graph
  • Global Analytics in the face of Bandwidth and Regulatory Constraints (no review required)
3/8 When Hardware Changes Mehrshad - Disaggregation
Ahmed - KVell
  • Network Requirements for Resource Disaggregation
  • KVell: The Design and Implementation of a Fast Persistent Key-Value Store


Before you start reading papers and writing reviews, take a look at the following resources:

Paper reviews are due 11:59pm the evening before class. Some papers are optional and do not require a review (but are highly recommended reading!).

The URL next to each paper will take you to the review website. You'll find a PDF of each paper on the review website. The review form provides some guidance on writing a paper review.

Class Discussion

Each paper is presented by a student, who then also leads the in-class discussion.

In total you will be expected to present once or twice throughout the semester.

We will spend approximately 40 minutes for each paper: about 15 minutes each for the presentation and discussion, with some extra time for wiggle room.

If you are assigned to present, then you do not need to submit reviews for that week's papers.

How to present a paper

Your presentation is an oral presentation - no powerpoint slides!

Your presentation should last approximately 15 minutes. You should not take longer than this unless people are asking questions during the presentation.

Try to structure your presentation around the following questions:

Notes. You should make bulleted notes to go along with your presentation that you share with the class ahead of time. Your bullet points should be a guide to your oral presentation, that everyone can use to follow along with. Don't include figures - everybody will have a copy of the paper with them, so you can just refer to figures directly in the paper.

Structure. If you're having difficulty structuring your presentation, a good starting point is to search online for existing presentations. For many papers you can find the original conference presentation of the paper. You can see how the paper's authors structured their presentation, and you are allowed to use this to structure your own presentation.

Discussion. At the end of your presentation you should provide your personal opinions about the paper. This is the starting point for the discussion. You should also prepare several open-ended questions that you can pose to the class to drive the discussion.

Miscellaneous Class Information


How do systems like Google and Facebook actually work? What does it take to build a planet-scale system? What can we do today using cloud computing that wasn't possible a decade ago?

In this course we will look at the research behind modern cloud and datacenter systems. We will read recent research papers in operating systems, computer networks, and distributed systems. We will look at modern application trends including big data analytics, microservices, serverless architectures, and machine learning. Along the way we will learn how to design, implement, and evaluate robust, effective, and efficient systems.

Registration and Prerequisites

The course is intended for Masters and Ph.D. students in Computer Science, but enterprising Bachelors students are also welcome to participate.

There are no formal prerequisites beyond a basic knowledge of how computer systems (operating systems, databases, networks, distributed systems) work internally.

To register for the seminar you must apply by e-mailing the instructor (Jonathan Mace), explaining why you wish to take the seminar and what your background in computer systems is. Places in the seminar are limited. If you wish to take the seminar without credit, please say so in your e-mail.

Class Structure

The class has two main components:

Grading for the class will be 50% paper reviews, 25% presentation, and 25% class participation.

When you present, no reviews are required for that week's papers. You may also skip 4 reviews, no questions asked.