CS262a:
Advanced Topics in Computer Systems

Tu/Th 9:30-11 in 306 Soda
CCN: 26710

Prof. Eric Brewer, Fall 2009


Take-home midterm is here.    due Th 11/19 at 7pm (via e-mail)

Update: The midterm has been updated to include question 3 (which was missing).
Update: in Question 4, given "A vs B", B is the horizontal axis



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 me 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. 
 
Overall Grading:

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 assigned paper (except for some explicit exceptions), students must turn in 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:  Some Classics
Thu 8/27
Week 1
The UNIX Time-Sharing System [NEW annotated version] [no summary required]
Dennis M. Richie and Ken Thompson
(New electronic version) 
Tu 9/1
Week 2
A History and Evaluation of System R [Annotated version]   [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 Red Book]
Michael Stonebraker, Eugene Wong, Peter Kreps and Gerald Held.
Labor Day Holiday
Part 2: Persistent Storage
Thu 9/3
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) 
Tu 9/8
Week 3
The HP AutoRAID Hierarchical Storage System [My temporary local copy,\ 2-up version]
Wilkes, Golding, Staelin and Sullivan 
Thu 9/10 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)
Tu 9/15
Week 4 
Segment-Based Recovery: Write-ahead Logging Revisited
Sears and Brewer
Th 9/17   Lightweight Recoverable Virtual Memory
M. Satyanarayanan, Henry H. Mashburn, Puneet Kumar, David C. Steere, and James J. Kistler
Part 3: Concurrency
Tu 9/22
Week 5
 
Experience with Processes and Monitors in Mesa
Butler Lampson and David Redell
Th 9/24 No Class
A letter to Gov. Schwartzeneggar that I signed along with other faculty from the National Academies.
Tu 9/29
Week 6
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
Th 10/1 Concurrency Control Performance Modeling: Alternatives and Implications
Agrawal et al.
Tu 10/6
Week 7
 
Lottery Scheduling: Flexible Proportional-Share Resource Management
Waldspurger and Weihl

Optional reading: Stride Scheduling: Deterministic Proportional-Share Resource Management
Part 4: Higher-Level Models
Th 10/8 Parallel Database Systems: The Future of High Performance Database Systems
Dave DeWitt and Jim Gray
MapReduce: Simplified Data Processing on Large Clusters
Dean and Ghemawhat.
Tu 10/13
Week 8
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]
Th 10/15
Encapsulation of Parallelism
Graefe
Eddies: Continuously Adaptive Query Processing
Ron Avnur and Joe Hellerstein
Part 5: Virtual Machines
Tu 10/20
Week 9
 
Xen and the Art of Virtualization
P. Barham, B. Dragovic, K Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt and A. Warfield.
Are Virtual Machine Monitors Microkernels Done Right?
S. Hand, A. Warfield, K. Fraser, E. Kotsovinos, D. Magenheimer.

Th 10/22

Live Migration of Virtual Machines
C. Clark, K. Fraser, S. Hand, J. Hansen, E. Jul, C. Limpach, I. Pratt, A. Warfield
ReVirt: Enabling Intrusion Analysis through Virtual Machine Logging and Replay
G. Dunlap, S. King, S. Cinar, M. Basrai and P. Chen
Part 6: Networking

Tu 10/27
Week 10

Congestion Avoidance and Control
Van Jacobson
TCP Congestion Control with a Misbehaving Receiver
Savage, Cardwell, Wetherall and T. Anderson

Th 10/29

Active Messages: A Mechanism for Integrated Communication and Control [no summary required]
von Eicken, Culler, Goldstein, and Schauser
U-Net: A User-Level Network Interface for Parallel and Distributed Computing
Basu, Buch, Vogels, and von Eicken

Tu  11/3
Week 11

The Click Modular Router
Kohler, Morris, Chen, Jannotti and Kaashoek
Part 7: Parallel and Distributed Computing

Th 11/5

Lessons from Giant-Scale Services
Brewer

Tu 11/10
Week 12

K42: Building a Complete Operating System
Krieger et al.

No summary required: The multikernel: a new OS architecture for scalable multicore systems

Th 11/12

Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
Stoia, Morris, Karger, Kaashoek, Balakrishnan
The Impact of DHT Routing Geometry on Resilience and Proximity
Gummadi, Gummadi, Gribble, Ratnasamy, Shenker, Stoica

Tu 11/17
Week 13

Dynamo: Amazon's Highly Available Key-Value Store

Th 11/19

Paxos Made Simple
Lamport 
No summary required, but please read: two-phase commit
Optional Wikipedia entry on Paxos
Part 8: Potpourri

Tu 11/24
Week 14

Speculative Execution in a Distributed File System
E. B. Nightengale, P. M. Chen and J. Flinn

Th 11/26

Thanksgiving Holiday 

Tu 12/1
Week 15
 

Implementing Declarative Overlays
Loo, Condie, Hellerstein, Maniatis, Roscoe, and Stoica

Th 12/3

Beyond Pilots: Keeping Rural Wireless Networks Alive
S. Surana, R. Patra, S. Nedevschi, M. Ramos, L. Subramanian, Y. Ben-David and E. Brewer
No summaries required

Tu 12/8  

Final Lecture (Makeup lecture for 9/24)

Mon 12/14
2-5 pm

Poster Session, 6th Floor Atrum, Soda Hall, Open to the public

Lecture Notes

11/19: Paxos (notes from Joe Hellerstein)
11/17: Dynamo
11/12: DHTs
11/10: K42
11/5: Giant-scale services
11/3: Click
10/29: Small messages
10/27: TCP
10/22: Virtual Machines, Part 2
10/20: Xen
10/14: Exchange and Eddies, "Little Languages" note and article related to the idea that there is power in small simple languages
10/6: MapReduce, Parallel Data
10/6: Scheduling
9/29: Concurrency Control
9/22: Monitors and MesaMARS rover priority inversion story
9/17: LRVM
9/15: Segment-oriented Recovery
9/10: Aries
9/8: AutoRAID
9/3:  File systems
9/1: System R
8/27: Unix