Course Syllabus

Computer Science 6204

TS: The Secret Life of Storage Systems

Fall 2019


Storage systems are ubiquitous. They store your pictures, your music, your entertainment, your social media, your health records, your financial information, your experimental results, your research papers; a digital snapshot of your connected life. They know your secrets. In this class, we will learn theirs. Specifically, we will explore the design of modern file and storage systems and how the APIs and underlying technology is evolving. We will understand the challenges therein such as power consumption, reliability, availability and manageability. The material will be mainly taken from research papers to cover the fundamentals as well as state-of-art.

This course is targeted at students interested in storage systems research & understanding complex, scalable systems. It exposes students to open-ended problems in I/O and storage systems and requires synthesis and integration of state-of-the-art system design and implementation methods, techniques, and tools. Successful completion of this course will help prepare students for the complexities of solving real-world problems in storage systems. Working on the projects will enable the students to exercise and reinforce the fundamental principles that they have learned in prior courses in this area, e.g., computer systems, computer architecture, networking, parallel computation, and distributed computing.


 Course information





Office Hours:


Meeting Time:

Final Exam Slot:

Dr. Ali R. Butt



Please email for appointments


MW 4:00-5:15pm in MCB 218

December 17, 7:45-9:45AM




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



We will not be using any textbook for this course. Reading material will be assigned as needed from research publications and online resources.



The course work consists of a programming project, and class participation in the discussions.

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. The term project can take multiple forms. For instance, your team may design, prototype, and evaluate a prototype storage system that solves a timely problem faced in storage systems design. Or you may design and evaluate the suitability of an existing storage system for a particular purpose. Or you may add an extension to a system like Ceph. You are encouraged to come up with your own ideas for a project.


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.


Late Drop and Incomplete Policy

Less-than-hoped-for performance or realizing you have taken on too much work this semester, are not permissible reasons to grant course withdrawal requests after the drop/withdrawal deadline. This policy applies only to drop requests that have to be approved by the instructor; in particular, it does not apply to the course withdrawals for six credit hours to which you are entitled according to college policy.


I will not grant incompletes for this course unless truly extraordinary, unforeseen circumstances outside of your control are to blame.



A tentative grading distribution is as follows. It may change based on class discussions and nature/complexity of projects undertaken by the class.



Term-project/final presentation


Class participation




We will use 10-point grading scale which is listed below:

A   90-100
B   89-80 
C   79-70 
D   60-69
F   Below 60  



Honor Code

The Virginia Tech Undergraduate Honor Code pledge, that each member of the university community agrees to abide by, states: ā€œAs a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.ā€

Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment or project is responsible for obtaining specific guidance from the course instructor before submitting the assignment or project for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code.

 For additional information about the Honor Code, please visit:


Students with Disabilities

If you need adaptations or accommodations because of a disability (learning disability, attention deficit disorder, psychological, or physical), if you have emergency medical information to share with the instructor, or if you need special arrangements in case the building must be evacuated, please meet with the instructor as soon as possible.


Course Summary:

Date Details Due