UW-Madison
Computer Sciences Dept.

CS739 Spring 2008: Distributed Systems


Instructor: Andrea C. Arpaci-Dusseau
When: TR 11:00 - 12:15
Where: 1289 CS
Office: 7375 CS
Office Hours: Friday 2-3 and by appointment
Mailing list archive

News

Overview

Welcome to the graduate distributed systems class. This semester, we will be reading both the classic papers on distributed systems as well as more recent research papers; we are going to be focusing on the distributed system knowledge that is needed to build scalable services like Google.

The work in this course will have two components: reading papers and a research project. For reading papers, you will have three responsibilities: writing a short essay to answer a discussion question for each paper, periodically scribing our lecture discussion and recording it for posterity, and presenting a paper with a small group to the rest of the class.

Readings

This semester, our reading will focus on the distributed system knowledge that is needed to build scalable services like Google. We will be mostly reading papers from the two top systems conferences: Symposium on Operating Systems Principles (SOSP) and Operating Systems Design and Implementation (OSDI). We will also read a few of the most classic distributed system papers to fill in some necessary background. The complete list of papers is available here

These papers assume that you already know the relevant background in the operating systems literature. Therefore, I expect that you have already taken CS736 (Graduate Operating Systems) before taking this course; if you have not, then please see me on the first day of class.

During class, you will all be expected to participate in our discussion. We will not be having any exams in this course; therefore, your "reading" grade will be based on your paper write-ups, your class participation, your scribing, and your group presentation.

  1. Paper Write-ups: To help make our discussions more interesting, you are expected to read each paper before class. To ensure this, before each class you must e-mail me (and the scribe for the lecture) a short write-up that addresses the question for that paper. The question for each paper is listed here. Your write-up should be approximately three paragraphs. Your e-mail should be in plain text (no attachments) and the subject should be "739: [keyword for paper]" where [keyword for paper] is the one word I used in the Lecture Schedule.
  2. Scribing: To help record the insightful comments that you all make, each lecture will have a student scribe associated with it. The scribe will be responsible for recording the general points that we discuss. The scribe will type up their notes (using this latex template) and posting these notes on the Writeup web page.
  3. Presentation: There are many interesting distributed systems papers that the class as a whole won't have time to read. To give you exposure to a few more of these papers, small groups of students will lead a lecture giving an overview of a few related papers. We will schedule these student-led lectures throughout the semester, as appropriate. You should create slides so that your talk is well organized and structured.

Projects

This semester, you will be doing both a warm-up project as well as a final project.

The goal of the warm-up project is to give you some exposure to working with distributed systems. This warm-up project will involve setting up and using Hadoop, an open-source implementation of MapReduce and a distributed file system. You should work on the warm-up project on your own.

The final project in this course has two goals. The first goal is to help you learn more about doing research in general. The second goal is to give you the opportunity to study a particular area of distributed systems in greater detail. You are expected to perform a fairly substantial research project; this involves selecting an (mostly) open problem, reading the related work, designing, implementing, and evaluating a solution, and presenting your results. People should work in groups of size two.

The best project for you is the one you feel motivated to do and will learn the most from. The project is your chance to work on something new and different -- I sincerely hope that not only will you learn a lot while doing your project, but also that you will have a lot of fun!

Throughout the semester, there will be a few milestones that you must meet for your main project:

  • Initial Meeting: We will use the initial meeting to help figure out which projects would be a good match for your interests and previous experience; therefore, before this initial meeting, you should have narrowed down the list of potential projects to two or three that you are interested in. Of course, you are more than welcome to informally talk to me about potential projects before this meeting!
  • Proposal Report: After our meeting, you should determine exactly what problem you will solve. In your project proposal, you should clearly state the problem you are planning to solve, your initial plans for approaching the problem, and your proposed methodology for evaluation. This report should contain references to at least one related background paper that you have read (but you can include more, as appropriate). Your write-up should be approximately a full page in length (or 500-1000 words). This is due Not Yet Determined.
  • Update Meeting: Near the end of the semester, we will have a meeting to discuss your results. At this meeting, you should summarize the problem you are solving, your approach, your methodology, and your results; you should plan how you will talk about these issues, but you do not need to prepare slides. You should absolutely bring all of your experimental results (in graph or table form). At this meeting, you will receive feedback on what you need to complete before your final report. This meeting will be held around Not Yet Determined.
  • In-class presentations: All students will give a brief overview of their projects in the last week of classes. Each group will have 20 minutes to describe their work to the rest of the class. Given this short time-frame, you will be giving only a very broad overview of your results; do not expect to distill everything that you did and learned in this talk! The time limit will be strictly enforced! More information on giving a presentation is available.
  • Final report: Your final write-up should be similar in style, length, and content to an OS conference paper. This is clearly the most important part of demonstrating your project! More details on writing the report will be given in class. This will due Not Yet Determined.

 
Computer Sciences | UW Home