COS-518 Syllabus


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  

How to read and present

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: Thu Oct 10 10:56:44 -0400 2013