Distributed Storage Systems

* Schedule
* Labs
* Discuss


*Apr 4: Paper and Questions posted.

*Apr 3: Get your commented draft report back from Leslie (our secretary on 7th floor Broadway).

* Feb 14: Paper and Questions posted. See schedule.

* Feb 11: Please read project information here and be prepared to discuss them in Monday's class.

* Feb 8: Paper and Questions posted. See schedule.

* Feb 2: Deadlines for all labs are rescheduled for Sunday night 11pm.

* Feb 2: Papers (and Questions) for the next class are out (see schedule).

* Jan 26: There will be a recitation on Tuesday, Jan 30th 7-8pm in WWH 1314. We will do a brief introduction of libasync. So, please bring the handout when going to the recitation. If you can read and understand the handout (skip Section 2.2), you don't need to attend the recitation.

* Jan 24: Papers for the next class are out (see schedule). Please prepare for the questions before coming to class.

* Jan 23: We've mailed out the temporary passwords, please change your password on brain.news.cs.nyu.edu asap.

* Jan 19: Subscribe to g22_3033_006_sp07 with your ***nyu.edu address

General Information

Class schedule: Mon 5-7pm WWH-102.

Class instructor: Jinyang Li (Office hour: Tue 5-6pm)

Class TA: Nguyen Tran (Office hour: Wed 6-7pm)

To reach the entire class, email to the g22_3033_006_sp07 class mailing list.

To ask a question to TA/Instructor only, email dss-staff@cs.nyu.edu.

Course information

Are you ever curious about how to manage an abundance of commodity PCs to provide coherent access and management of petabytes of data? This class teaches abstractions, design and implementation techniques that allow you to build the kind of scalable high performance distributed systems that can deal with real-world workload. Topics include server design, network programming, naming, storage systems, security, and fault tolerance.

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 4-5 individual programming labs for the first half of the term. This sequence of labs will guide you in building a basic network file server. We will provide you with access to a cluster of Linux boxes to do the lab. In the second half of the term you'll undertake a project in small teams. Each team 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 dss-staff@cs.nyu.edu

Policy on academic integrity