Computer Science 6204

File & Storage Systems

Fall 2007

Overview

Storage is quickly becoming ubiquitous, as evident by the prevalent use of disk drives in a myriad of applications ranging from traditional computer systems to consumer electronics, e.g., TiVo, gaming consoles, mp3 players, etc. At the same time, the size of data processed and consumed by modern applications is growing exponentially. Innovative applications are making us more and more reliant on storage systems. Newer techniques are regularly developed to interface with the storage systems, and new file system abstractions are being designed to promote new interfaces through which users interact with their data. The storage system is not limited to disks, but includes a complex hierarchy ranging from high speed disks on one end, large client caches on another, and a high performance interconnect between the two. It is important to understand all these levels of the storage hierarchy when designing and deploying storage devices for production environments. Further, while performance has traditionally been the primary criterion for optimization, there are several other emerging metrics of importance, including the power consumption, reliability, availability and manageability. This course will cover all these aspects of file and storage systems. The material will be mainly taken from research papers to cover the fundamentals as well as state-of-art in file and storage system research.

Course information

Instructor:

E-mail:

Phone:

 

Office Hours:

 

Meeting Time:

Class Web Page:

Discussion Forum:

Dr. Ali R. Butt

butta@cs.vt.edu

1-0489

 

Please email for appointments

 

TTh 2:00-3:15pm in KWII 2-225

http://people.cs.vt.edu/~butta/cs6204/fall2007/butta/

Available on CS Forums@ http://forum.cs.vt.edu/

 

Prerequisites

This is an advance level graduate level course and is aimed at students interested in file systems research. There are no formal prerequisites for this course, however, basic knowledge of operating systems concepts, algorithms and data structures, and relevant programming proficiency is assumed.

 

Textbook

We will not be using any textbook for this course. Research papers will be assigned for discussions and student presentations.

 

Format

The course work consists of exams, student presentations, programming projects, and class participation in the discussions.

 

Midterm: There will be one in-class midterm based on the material (lectures/papers) covered in class.

 

Paper and presentation evaluations: All students are required to read and evaluate the papers that are being discussed in class in advance. A paper evaluation form is available at the class website. Your evaluation should address the questions on this form. You will submit your evaluation forms (limited to one page) at the beginning of class.

 

Given the research focus of this class, a no-late policy is in place. Students can contact the instructor in case of extra-ordinary circumstances.

 

Paper presentation: Every student will prepare a 25 minute presentation on an assigned research paper. Your presentation should contain two parts: one in which you present the work as if it were your own, and a second part in which you present your evaluation of the work. You will meet with the instructor before your presentation to discuss your slides. You must have a complete draft of your slides ready by that time.

 

Project: The class includes a term-long programming project of your choice related to the topics covered in class. The project will be completed in teams of two. The term project can take multiple forms. For instance, your team may design, prototype, and evaluate a small system that solves a distributed storage problem. Or you may design a project that evaluates the suitability of an existing system for a particular purpose. Or you may add an extension to a system like Linux. You are encouraged to come up with your own ideas for a project, or choose from a posted list.

 

Students will submit a 2 page project proposal that should outline the project. The proposal should explain what problem you are addressing and the relevance of that problem. You should outline what infrastructure (software and/or hardware) you will be using for that project and how you expect to evaluate your results. You will need to define what deliverables your project will have. To ensure progress towards the completion of your project or paper, your team will meet with the instructor during certain milestones, which will be posted on the class website. Those meetings are mandatory for full credit on the project.

 

Final Presentation: All teams are required to do a final 20 minute presentation that summarizes the results of their survey paper or programming project.

 

Grading

Midterm

25%

Paper evaluation

10%

Research paper presentation

10%

Term-project

50%

Final project presentation

5%

 

Honor Code

All work is conducted under the rules of the university Honor Code. This code and other relevant policies are described in detail on the class web pages.