CSE-595: Special Topics: Storage Systems, Spring 2015

This is the home page for CSE-595, the Special Topics: Storage Systems class for the Spring 2015 semester, given at the Computer Science Department of Stony Brook University.

This class meets on MONDAYS only from 5:30pm-8:10pm in room CS-2129

Quick Links:

Course Calendar
Subscribe to Class Mailing List
Class Mailing List Archives
Latest list of project ideas


4/12 Project proposal design document due (Sun 4/12/15 @ 11:59pm). Submit via git commit+push AND a printed copy in my mailbox outside office or in Pit area mailboxes.
3/27 University official make-up lecture 2 (on a Friday).
3/13 Project proposal design document due (Fri 3/13/15 @ 5pm). Submit via git commit+push AND a printed copy in my mailbox outside office.
3/6 University official make-up lecture 1 (on a Friday).
2/6 Another make-up lecture (on a Friday) will be held in room CS-2129.
1/30 Special make-up lecture (on a Friday) will be held in room CS-2120.
1/26 First class is canceled due to weather.

Class Time and Location

Days: Monday
Hours: 5:30pm–8:10pm
Location: Computer Science building, room 2129


Name: Erez Zadok
Office: 2313-B CS Dept.
Lab: 2214 CS Dept. (I'm often in my lab.)
Tel: x2-8461 (631-632-8461)
Office Hours: Mondays 4:30pm–5:30pm, or by appointment.
Email: click here
This class does not have a TA at this time.

Course Overview:

This is an advanced class that will cover storage systems, defined as any software/hardware system that performs any sort of I/O related to storage stack and file systems, including local, networked, distributed, and cloud storage systems. Students will attend lectures, read papers and present them, and work on a SUBSTANTIAL project throughout the semester. By the end of the semester, students will have to produce either (1) a 12-14 page conference/journal quality technical paper, or (2) production-quality working software and a technical report describing the work. Students will be expected to spend at least 10 hours per week on the course work, outside class lectures/meetings. Teams working on projects will be working closely with the Prof. Zadok and his doctoral students who may be sponsoring some of these projects. Students are expected to demonstrate a high level of independence, critical thinking, and initiative.

We will spend the first couple of weeks picking projects and outlining several ideas. Half of the semester will be roughly devoted to development of code. The other half will be devoted to benchmarking and paper writing. Students will submit 1-2pp project proposals, mid-semester progress report, and final project paper/report. You will learn that in real projects (and not just research), a significant amount of time must be devoted to testing, benchmarking, analysis, and documenting your results. Students will demo their project progress mid-semester and at the end (demos could take 1-2 hours per team). Students will have to read technical papers related to their project, research the literature and any existing code, and present their findings in class (using PowerPoint slides). Your grade will be determined based on graded documents you submit, code quality and functionality, your demos and presentations, and attendance+participation in class.

The course will be supplemented with an assortment of lectures covering advanced topics such as Solid State drives (Flash and PCM), cutting edge devices such as Shingled Magnetic Recording (SMR) disks, NFS version 4, and more. We will read and discuss the latest storage papers from conferences such as SOSP, OSDI, and FAST. We will have a few guest lectures from graduate students working on advanced storage and file system related projects, as well as talks by external visitors from industry. I will also give a couple of lectures on how to write technical papers, getting them published, and how to prepare for and give a good talk (these are vital skills for graduate students which are often not taught formally).

There will be one exam in this class (either a midterm or a final).

Who can take this class?

To take this class, you are strongly advised to have taken (or concurrently take) CSE-506 (OS) and have a good grade. I will accept proven industry experience working on kernel/systems code in lieu of having taken CSE-506. Students should also preferably have substantial prior experience coding in C, systems and OS coding, networking, security, using development and debugging tools for C, etc. Many of the projects require familiarity with Linux kernel/systems development, but not all (you can do a lot of storage related research outside the kernel). Also strongly recommended is to have taken CSE-548 (Algorithms). Instructor permission is required to take this class.

This course may also be used to satisfy CSE-522, under section T04. You must speak with the instructor and get approval before registering for this special topics class as a CSE-522.

Proposed Projects:

A list of project ideas is available, and will be updated frequently in the first few weeks of the semester (so be sure to refer to the latest list, which has a date timestamp at the top).

All students who are not sure if they want to take this class, but are interested, MUST attend the first lecture where we'll go over the current list of proposed projects. Of course, students are welcome to propose their own projects, which can be anything related to storage and/or file systems, and in general operating systems (but talk to the instructor first). You can choose to modify or combine any of the projects we propose. You can design a project to suit any size team from one to four people.


The final grade will be determined as follows: The raw scores obtained by all students on each assignment and exam will be standardized for that particular assignment or exam either (at my discretion) by converting them to percentile scores, or else by applying a linear transformation to map the scores to a standard [0, 100] scale. A weighted sum of the resulting standardized scores will then be formed (with weights as shown below) to obtain a composite score for each student. Finally, the composite scores will be ranked, and I will apply a subjective method of my choice to determine the cutoffs for each grade category. Absolute performance standards, the distribution of composite scores, information derived from late homeworks, and class participation are factors likely to contribute to this decision.

Last Updated: 2015-03-09