This schedule and syllabus is subject to change. See below for presentation instructions.
| Date | Topics | Notes / Assignments | Readings |
|---|---|---|---|
| Part 1: Systems organization and naming | |||
| Thu 09/15 | Course overview and introduction |
||
| Tue 09/20 | Principles of system design |
Read Chapter 1 | |
| Thu 09/22 | Principles of system design (discussion) |
Read all three papers, but only section 2.1 of "Worse is Better" | Hints for Computer System Design, Worse is Better, You and Your Research |
| Tue 09/27 | System organization and naming |
Read Chapter 2.1, 2.2, 2.5. Optional paper on XFS. | |
| Thu 09/29 | System organization and naming (discussion) |
Sign up to read one of the three papers by 9/23 | AFS, Exokernel, Plan9 |
| Tue 10/04 | Naming |
Read Chapter 3 and Saltzer paper (Vivek Pai guest lecture) | Saltzer End-to-End |
| Fri 10/07 | Naming in systems (discussion) |
Sign up to read one of the four papers by 9/30. Class at 3:00-4:20pm | SFS, UIA, INS, i3 |
| Part 2: Communication and Concurrency | |||
| Tue 10/11 | Client/server and RPC |
Read 4.0, 4.2, 4.3, 5.1, Optional paper Birrell '84 on initial RPC design considerations. Class will include "pitches" by other grad students for potential course projects. | |
| Thu 10/13 | Client/server and RPC (discussion) |
Scheduler Activations, Livelock Avoidance, Flash | |
| Tue 10/18 | Threads and virtualization |
Read 5.5 through 5.8 and Hauser paper. Optional libasync tutorial. | Hauser Threads |
| Thu 10/20 | Threads and virtualization (discussion) |
IO Lite, ESX, Fido | |
| Tue 10/25 | Designing for performance |
Read 6.1, 6.2.1 - 6.2.5, 6.3 and Fbufs paper (Vivek Pai guest lecture) | Fbufs |
| Fri 10/28 | Designing for performance - Concurrency (discussion) |
Class at 12:30-1:50pm in room 302 | Tame, SEDA, libasync-MP |
| Tue 11/01 | Fall recess |
No class. | |
| Thu 11/03 | Fall recess |
No class. | |
| Part 3: Distributed Systems and Consistency | |||
| Tue 11/08 | Fault tolerance |
Chapter 8 and System R paper | System R |
| Thu 11/10 | Atomicity and concurrency control |
Chapter 9 and one of other papers | RAID, Harp, Walter |
| Thu 11/17 | Ordering and consistency models |
Lamport paper | Lamport clocks |
| Fri 11/18 | Strong consistency (discussion) |
Chapter 10 and one of other papers. Class at 3-4:20pm in room 302. | Chubby, MegaStore, CRAQ |
| Tue 11/22 | Weakening consistency (discussion) |
Read Vogel's Eventual Consistency paper, then one of others | COPS, PNUTS, Dynamo |
| Thu 11/24 | Thanksgiving recess |
No class | |
| Part 4: Scalable Storage and Data Processing | |||
| Tue 11/29 | Scalable system design (discussion) |
Everybody read Google Cluster Design, then one of others | Zebra, Porcupine |
| Thu 12/01 | Fast/efficient key-value storage |
Read one of three papers | Hashcache, FAWN, SILT |
| Tue 12/06 | Big Data I (discussion) |
Read one of three papers | MapReduce on EC2, MapReduce Online, Piccolo |
| Thu 12/08 | Big Data II (discussion) |
Read one of three papers | Percolator, Spark, Ciel |
| Part 5: Security | |||
| Thu 12/15 | Information security principles |
Read Chapter 11, Thompson's famous Turing lecture (Trusting Trust), and Saltzer paper | Saltzer Principles |
| Fri 12/16 | Untrusted Cloud infrastructure (discussion) |
Class at 12:30-1:50pm in room 302. | SUNDR, SPORC, CryptDB |
| Tue 01/17 | Project Write-ups Due |
Due by 11:59pm EST on Dean's Date | |
When reading papers, think about the main problem a paper is addressing, its main technical approach, and the strengths and weaknesses of the paper's technical approach and execution.
When presenting papers in class, you should prepare slides for a 12 minute presentation that includes:
After each presentation, the other students who read the paper will add to the discussion, intermixed/followed by questions from the rest of the class.
Last updated: Fri Jan 06 10:49:32 -0500 2012