` CS262: Advanced Topics in Computer Systems

CS262a:
Advanced Topics in Computer Systems

Tu/Th 2-3:30 in 306 Soda
CCN: 27385

Prof. Eric Brewer and Prof. Joe Hellerstein, Spring 2008

CS262a is the first semester of a year-long sequence on computer systems research, including operating systems, database systems, and internet infrastructure systems.  The goal of the course is to cover a broad array of research topics in computer systems, and to engage you in top-flight systems research.  The first semester is devoted to basic thematic issues and underlying techniques in computer systems, while the second semester goes deeper into topics related to scalable, parallel and distributed systems.  The class is based on a discussion of important research papers, and a research project.

Prerequisites: The historical prerequisite was to pass an entrance exam in class, which covered undergraduate operating systems material (similar to UCB's CS162). However, this year we are trying it without an exam. However, if you have not already taken a decent undergrad OS class, you should talk with us before taking this class. The exam also had the benefit of "paging in" the undergrad material, which may have been its primary value (since the pass rate was high).

Exams, Papers, etc.

The main work of this class is to read frequently and deeply, while working toward a group research project of publishable quality.  Each student will be individually responsible for writing up a short summary of every paper.

There will be one midterm exam (albeit near the end), and no final exam.

Research projects are a critical aspect of the course.  Your goal is to do some quality systems research; that is, to add to our understanding of how to build systems.  Research projects must be written up in a term paper, and will be presented in a poster in a departmental mini-conference.  Suggested project ideas will be provided by the instructors, but you are strongly encouraged to come up with your own project ideas.  Potential projects include implementation or analysis of some piece of an OS, a DBMS, or an internet service; extending one of these systems with new functionality; or measurement and analysis of existing systems with the goal of better understanding issues in system design.
 

Lecture and Reading Schedule

There is no required textbook, but some of the papers are in Readings in Database Systems.

We will read and discuss 2-4 papers per week. Most of the papers for the class will be available either on-line, or as handouts in a previous class. An additional suggested text is Gray and Reuter's Transaction Processing: Concepts and Techniques

Paper Summaries

For every assinged paper (except for some explicit exceptions), students must turn a reading summary before the beginning of the corresponding lecture. Summaries should be e-mailed to cs262profs@db.cs.berkeley.edu. Summaries should be limited to 1/2 page at most and should include at least one criticism of the paper. (Just a simple summary, as you might get from the abstract or conclusion, misses the point, which is to get students to read the papers!) You can miss 3 summaries without penalty.

 Part 1:  Basics and Classics

Tu 1/22
Week 1
The UNIX Time-Sharing System
Dennis M. Richie and Ken Thompson
(New electronic version) 
Th 1/24 A History and Evaluation of System R [in the Red Book]
Donald D. Chamberlin, Morton A. Astrahan, Michael W. Blasgen, James N. Gray, W. Frank King, Bruce G. Lindsay, Raymond Lorie, James W. Mehl, Thomas G. Price, Franco Putzolu, Patricia Griffiths Selinger, Mario Schkolnick, Donald R. Slutz, Irving L. Traiger, Bradford W. Wade and Robert A. Yost

Optional Reading 1: Architecture of a Database System [also in textbook]
Optional Reading 2: The Design and Implementation of Ingres [in textbook]
Michael Stonebraker, Eugene Wong, Peter Kreps and Gerald Held.

Part 2: Persistent Storage

Tu 1/27
Week 2
A Fast File System for UNIX
McKusick, Joy, Leffler and Fabry
Analysis and Evolution of Journaling File Systems

Optional reading: The Design and Implementation of a Log-Structured File System
Rosenblum and Ousterhout (229K) 
Th 1/31 The HP AutoRAID Hierarchical Storage System [My temporary local copy,\ 2-up version]
Wilkes, Golding, Staelin and Sullivan 
Tu 2/5
Week 3
ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-ahead Logging, 2-up version
C. Mohan et al. (in Red Book)

Part 3: Concurrency

Th 2/7 Experience with Processes and Monitors in Mesa
Butler Lampson and David Redell
Tu 2/12
Week 4
Lightweight Recoverable Virtual Memory
M. Satyanarayanan, Henry H. Mashburn, Puneet Kumar, David C. Steere, and James J. Kistler
Th 2/14 Granularity of Locks and Degrees of Consistency in a Shared Database
Gray et al. (Also in the Red Book)
On Optimistic Methods for Concurrency Control
Kung and Robinson

Optional reading: Generalized Isolation Levels
Atul Adya, Barbara Liskov, Patrick O'Neil
Tu 2/19
Week 5
Concurrency Control Performance Modeling: Alternatives and Implications
Agrawal et al.
Th 2/21 Lottery Scheduling: Flexible Proportional-Share Resource Management
Waldspurger and Weihl
Tu 2/26
Week 6
SEDA: AnArchitecture for Well-Conditioned, Scalable Internet Services
Matt Welsh, David Culler, and Eric Brewer

Capriccio: Scalable Threads for Internet Services
Rob von Behren, Jeremy Condit, Feng Zhou, George C. Necula, and Eric Brewer

Part 4: Query Processing

Th 2/28 Access Path Selection in a Relational Database Management System [all new version!] [in Red Book]
Selinger, Astrahan, Chamberlain, Lorie & Price

Optional reading: Grammar-like Functional Rules for Representing Query Optimization Alternatives
G. Lohman [in Red Book]
Tu 3/4
Week 7
Parallel Database Systems: The Future of High Performance Database Systems
Dave DeWitt and Jim Gray
MapReduce: Simplified Data Processing on Large Clusters
Dean and Ghemawat
Th 3/6
Tu 3/11
Week 8
Th 3/13
Tu 3/18
Week 9
Th 3/20
Tu 3/25
Th 3/27
Spring Break
Tu 4/1
Week 10
Th 4/3
Tu 4/8
Week 11
Th 4/10
Tu 4/15
Week 12
Th 4/17
Tu 4/22
Week 13
Th 4/24
Tu 4/29
Week 14
Th 5/1
Tu 5/6
Week 16
Th 5/8 Final Lecture

Lecture Notes