Advanced Topics in Computer Systems (Spring 2020)

Course Description

Catalog Description: Continued graduate survey of large-scale systems for managing information and computation. Topics include basic performance measurement; extensibility, with attention to protection, security, and management of abstract data types; index structures, including support for concurrency and recovery; parallelism, including parallel architectures, query processing and scheduling; distributed data management, including distributed and mobile file systems and databases; distributed caching; large-scale data analysis and search. Homework assignments, exam, and term paper or project required.

Informal Description: It provides a PhD-level study of groundbreaking and influential research across the spectrum of operating systems, parallel and distributed systems, networked systems, storage systems, and security across the tiers from global scale, cloud, institutional, personal, mobile, and embedded. It is intended to directly support student preparation for a dissertation in systems areas, but will also support completion of the MS post cs262a.

Particular emphasis is placed on understanding and participating in the advancement of formative ideas in this rapidly evolving field. We will read many of the highly recognized or highly cited papers over the past 20 years, including several that were rejected one or more times before being accepted and going on to be extremely highly aclaimed, e.g., receiving test-of-time awards. We will also look at foundational works that laid the path for these advances decades earlier, before the web completely reshaped systems research. We will use OSDI 2020 as an focusing opportunity and carry out a mock-PC within the class on projects as if they were being submitted to the conference. (The timing of the conference will not permit a shadow PC as it did in 2009, when this course was last offered.) Discussion will be moderated so all voices can be heard.

Course Format

Several of the class meetings will take the form of “a great debate”, with readings challenging the status quo or laying out a fundamental trade-off in approach. Class session will have a debate format to develop experience with articulating and weighing broad ideas. The other meetings will focus on a particular technical advancement and each paper will have three students presenting specific perspectives: the key advancement of the work, the methodology by which the results are established, and limitations to the applicability of the results.

Each class meeting will center on, typically, two readings assigned prior, with students assigned to the roles above. A short report on the papers will be due at 8am of the day of class, so the instructor can read those and pull out important observations or gaps prior to class discussion.

Course Syllabus

This is a tentative schedule.
Specific readings are subject to change as student interests are better understood.

Jump to Today

Week Date (Lec.) Topic
( 1 )

Introduction and Course Overview

This meeting will be overview of the class and introduction of class members. Time permitting, we will talk about system performance.

( 2 )

Student 3-minute “My Systems Research” presentations.

Each class member will offer a 3-slide presentation of their current research focus.

Add presentation or link here

Sign up for debate roles

( 3 )

Great Debate 1: OS Abstractions

A fundamental question in systems is how system software creates effective abstractions enabling protected access to shared hardware resources. We will have two debates centered on HotOS papers - extensible kernels and virtual machines.

( 4 )

Great Debate 2: Threads vs Events

A critical element of all operating systems is how to handle concurrency. Fundamentally there have been two camps, threads vs events. Needham tried to put the questiojn to rest in 1978 with the Duality paper. But graphical user interfaces and then internet services and wireless embedded networks brought it back to the fore. The SOSP 2001 program committee is debated whether to reject the SEDA paper or to make it a keynote. The compromise was to accept it and have Roger Needham deliver a keynote adjacent to it. But two years later, some of the SEDA authors had evolved their views. You’ll want to read or at skim the optional references, but you don’t need to report on them.

( 5 )

Debate 3: Multicore OS

With the end of clock scaling we have experienced a “fourth wave” of multiprocessor design, MultiCore, where wee can expect the number of cores per processor to grow rapidly as chip density continues to grow. As the multi-micrioprocessor revolution of the 80’s drove BSD, this presents basic questions of scaling Linux vs rethinking the design, but now where cloud-based services are the driving workload, behooving us to revisit the contract between system and user level, represented in the 90’s by Scheduler Activations.

( 6 )

Debate 4: HLL role is OS Design

Throughout the histiory of computing, operating systems have represented the most demanding sort of complex, concurrency intensive, high-reliability software. This has given rise to numerous new language designs, and new languages have offered the potential to finally leap beyond C as the implementation language. Recent years have seen a renaissance in programming language design, including new systems languages, e.g, Go and Rust.

( 7 )

Scan on KV - MapReduce

As cluster computing took off post-search engine, Scan algorithms were rediscovered over a new storage model while handling unreliability.

( 8 )

Distributed Consensus in Practice

Paxos has dominated the vernacular of distributed consensus. Not only does it have its own checked history of whether it warranted publication, but the efforts to develop a more understandable and implementable replacement (Raft) were rejected three times before being published. These readings overlap with CS262A; we will take the opportunity to explore overcoming rejection in the pubication process.

Here are the reviews from the 3 rejected submissions of Raft, before being accepted and awarded Best Paper. The RAFT link provides the conference talk. Watch it before class.

( 9 )

Emergence of Planetary Scale Computing

As clusters, content-distribution networks (e.g., Akamai), and PVM took hold, but the Cloud gaining massive scale, global geographic scale, and general usage was economically inconceivable, visionary explorations of planetary scale computing emerged. The WebOS paper was rejected four times, but invited by a PC chair. Planetlab faced distainful reviews, but recieved multiple test-of-time awards a decade later. The Grid remained largely outside the systems research community.

( 10 )

Cloud Cluster Frameworks

Term projects in 2009, Mesos and Spark, brought an essentially level of generality over the opensource, Hadoop, and commercial state of the art. The “cluster level” systems design concepts were able to reach much further with the maturation of cluster technology and its “local level” systems building blocks.

( 11 )


( 12 )


( 13 )

CS262B Alums - Entreprenurialism and Graduate Systems

( 14 )

Societal-Scale Graph Processing

( 15 )

SysML - Cloud-scale Machine Learning Systems

( 16 )


( 17 )

Planetary Scale Computing Systems Redux

( 18 )

EECS Faculty Retreat

Class time available to work on projects.

( 19 )

Spring Break

( 20 )

Spring Break

( 21 )

Debate: Post-Cloud Operating System Design

( 22 )

Network Function Virtualization

( 23 )


( 24 )

Time and Defensive Distributed System Design

( 25 )

Epidemic Routing and Gossip Protocols

( 26 )

Key Results - Student Presentations

( 27 )

Optional Project Discussions

( 28 )

How to be a good reviewer

You do not need to do write-ups, but please read these. We will have a discussion about the PC review process, what to expect from reviewers, and what expectations you should live up to when you take on that role. The optional is quite useful too.

( 29 )

No Class

Draft Reports due 4/29.

( 30 )

Failure and Disaster Planning

Draft reports distributed for review

( 31 )

RR Mock PC Meeting

( 32 )

5/7/20 RR


Project ideas

Please fill out the project proposal form by Sunday, March 1.

Project Proposal form

Relevant Conferences (partial list)

Useful references


Grades will be largely based on class participation and projects. In addition, we will require weekly paper summaries submitted before class. If class chooses, we could include an individual assignment.


Scaling Wide Area Storage