In this course, you will be responsible for
as well as both a mini and final
Specifically, for each class, we will all read one or two papers on a specific "hot" topic in storage systems. In class, we will discuss the ideas presented, and try to understand the impact of new technologies upon those ideas. After the first few weeks, each paper will have an "expert" or two associated with it -- a student who has read the paper very carefully, and read a few other related papers as well. Thus, every student will have to rotate through the expert position a couple of times during the semester.
As for projects, there will be a warm-up mini-project and a final project, both of which are described in more detail below. The basic idea for the mini-project will be to get your hands dirty on a specific, well-defined project, whereas the idea behind the final project will be to conduct high-quality research on a topic of your choosing. The real underlying aim of the course is to generate a whole bunch of cool final projects.
There will be no exams or quizzes or tests of any kind (hooray!).
It is assumed that you have taken graduate operating systems (CS 736), but if you have a real interest in taking this class and have not taken 736 yet, please send me email and something can likely be arranged. The main reason for a prerequisite is to ensure that the workload does not overwhelm you (i.e., we will read and discuss a large number of papers), and that you are familiar with the main ideas and technical terms in file systems and storage.
09/11 TCP and U-Net
09/18 Self-scaling I/O
10/23 SOSP (no class)
10/30 No reading
11/06 Disk-directed I/O
11/20 No reading
12/04 Self-Securing Storage
12/11 Fail-Stutter and ROC and Restartability
09/27 Classic Scheduling
10/04 Anticipatory Scheduling
10/18 Low-bandwidth NFS
10/25 Latency Management
11/01 Informed Prefetching
11/29 Active Storage
12/06 NASD Security
12/13 Network Attached Storage Architecture
You will have two basic responsibilities for each paper:
1 - Read the assigned papers before class. Without doing so, discussion is not possible.
2 - Write down your thoughts on the paper, and bring them to class for discussion. What is the important idea presented in the paper? What would be good to discuss? What was hard to understand or unclear? How will changes in technology affect the thoughts presented within the paper?
A couple of times during the semester, you will have to be the
for a given day's readings. Thus, you will be expected to come to class particularly well-prepared, having read the current paper with extreme attention to detail. You should also have read a couple of related papers to feel like you have a solid footing in the area (please ask me for tips, or at least make sure I know about what other papers you are reading). The expert process will begin roughly two weeks into the course, at which point a sign-up sheet will be handed out.
One problem in doing research in storage systems is the lack of a
suite of benchmarks upon which to evaluate your research idea. In this mini-project, we will address this gap as a class. Each of you (individually) will be responsible for finding a particular I/O-intensive application, and tracing its I/O behavior. The more important, demanding, and cool the benchmark, the better you will you do on this assignment.
The final project is the main focus of the course. You are expected to perform work which could eventually be suitable for publication in a major operating systems conference. Of course, for this course, the topic should be in the general area of file systems, storage, or related topics. People should work in groups of size one or two -- I will not allow groups larger than that. Though we will provide some suggestions for you to pick from, you are encouraged to think of a project on your own, which we can help to refine. Project write-ups will be similar in format to a conference submission, and all will be entered into a class-wide mini-conference. The best papers will be presented to the class.