Department of Computer Science 

CS 6464: Spring 2009

Advanced Distributed Storage Systems

* Home
* Information
* Schedule
* Labs
* Project


May20: Final Projects are available here.

May5: Final Project due Friday, May

Apr30: Project demo's will be located in Upson 315 today, Thursday, April

Mar25: The project midterm survey paper is due next, Tuesday, March 31st. here

Mar09: Updated project description and ideas is available here.
A project proposal is due tomorrow, Tuesday, March 10th.

Feb12: Lab 2 is available. It is has three components that are due:
The Design Document is due Monday, February 16th, 11:59pm.
Part A is due Thursday, February 19th, 11:59pm.
Part B is due Thursday, February 26th, 11:59pm.

Feb02: Lab 1 is available. It is due, Tuesday, February 10th, 11:59pm.

Jan28: Lab 0 due tomorrow, Thursday, January 29th.

Jan28: Read and write a review before Thursday, January 29th, class
A Toolkit for User-Level File Systems. David Mazieres. Appears in Proceedings of the USENIX Annual Technical Conference, June 2001.
Turn Review in before class via Course Management System (CMS).

Jan26: Updated course information page with grading policy, how to write a review, etc.

Jan25: Read and write a review before Tuesday, January 27th, class
Design and Implementation of the Sun Network File System. Russel Sandberg, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. Appears in Proceedings of the 7th USENIX Annual Technical Conference, 1985.
Turn Review in before class via Course Management System (CMS).

Jan23: Lab 0 is available via Course Management System (CMS). It is due, Thursday, January 29th, 11:59pm.

Jan22: Need to register for class to gain access to Course Management System (CMS) and our environment on Amazon's EC2/S3, which is required to completed Lab 0.

Jan20: Read and write a review before Thursday, January 22nd, class
Cumulus: Filesystem Backup to the Cloud. Michael Vrable, Stefan Savage, and Geoffrey M. Voelker. Appears in Proceedings of the 7th USENIX Conference on File and Storage Technologies (FAST), February 2009.

General Information

Class schedule: Tue/Thur 10:10-11:25am, 362 Hollister Hall (HLS).

Class instructor: Hakim Weatherspoon (Office hour: Tue/Thur 1:00-2:00pm, 4105C Upson Hall)

Class TA: Tudor Marian (Office hour: Mon/Wed 3:00-4:00pm, 5138 Upson Hall)

Course information

This course broadly examines distributed storage systems in its many manifestations. It explores how to harness and maintain the collective storage capabilities in storage systems from global-scale enterprises and cloud computing to peer-to-peer, ad hoc, and home networks. It teaches abstractions, design and implementation techniques that allow students to build the kind of scalable high performance distributed systems that can deal with real-world workload. Students read recent research papers on server design, network programming, naming, various storage systems, security, and fault tolerance. The key is that students immerse themselves in state-of-the-art research, produce a term project, and often end with very interesting research results that can be published.

Course structure

This class is a graduate level course with lectures, individual labs and a final team project. Most class meetings consist of half lecture and half paper discussion. You should read the paper before coming to class, and be prepared to discuss it. We will post 1 or 2 questions about each paper to guide your reading. There will be 2-3 individual programming labs for the first half of the term. This sequence of labs will guide you in building a basic network file server. In the second half of the term you will undertake a project either individually or a small team of two. Each group will design and implement a system of its choice.


1. Undergraduate Operating Systems
2. Programming experience in C/C++ is useful for the labs

Useful Books

The following books may help provide background help with lab programming. None of them are required. They are listed in rough order of usefulness.
  • UNIX Network Programming. Volume 1: Networking APIs: Sockets and XTI. W. Richard Stevens.
  • Modern Operating Systems. Andrew Tanenbaum. Prentice Hall.
  • Distributed Systems: Principles and Paradigms, Andrew Tanenbaum and Maarten van Steen, Prentice Hall.
  • The Design and Implementation of the 4.4 BSD Operating System. Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman.
  • The C++ Programming Language. Bjarne Stroustrup. Addison Wesley.
  • Advanced Programming in the UNIX Environment. W. Richard Stevens.

Questions or comments? email

Policy on academic integrity