The course will be based on the critical discussion of (mostly) current papers drawn from recent conferences. In addition, there will be a project component, first on an individual basis and then as a class, synthesizing the lessons learned.
We will explore widely-distributed systems that take advantage of resources throughout the Internet. These systems leverage their large size and geographic diversity to provide features like bandwidth scalability, rapid responses, massive storage, fault-tolerance, high-availability, and diverse data collection. We will be particularly interested in understand how to make these systems work when the interests of all participants are not aligned.
CS 167 and CS 168, or equivalents (a networking and an OS course); or permission of the instructor.
PhD: Area "C" (Operating Systems)
ScM: "Practice" course & "significant programming course"
A crucial prerequisite of good systems research is to understand the strengths and weaknesses of the existing systems and the semantics and requirements of the target application domains. Students are expected to contribute to class discussions by asking questions, making observations, identifying strengths and weaknesses, etc.
You will critically analyze the papers in the reading list. Critical reading of technical papers is a must-have skill in research. You will synthesize the lessons for all papers due on a given day, compare approaches, assess weaknesses, and suggest further research areas. There are 25 "regular" class days, you will write 5 short-papers (approximately 2 pages each). Each will be worth 5% of your grade.
Each student will be making presentations from the reading list (the number depends on class size). A week before the presentation, the participant will email the instructor a detailed outline of the presentation. Similarly, the talk slides will be submitted (pdf) at least two days before the presentation. The outline and slides should be modified on the basis of feedback before the presentation. After the presentation, a page summary (html) will be made for the benefit of future students.
The class will begin with two individual projects intended to familiarize you with distributed programming and p2p systems. Each will be worth 10% of your grade.
About 2/3 of the way through the term, we will design a complete p2p system, designed to accomodate selfish users. You will contribute to the design, implementation, and evaluation.