Supplemental Readings for Graduate Students
Each graduate student will read and present a technical paper in class.
Each paper will be a case study of a real distributed systems.
Developing a good lecture requires some work. Students will follow this procedure:
Three weeks beforehand, read the paper carefully, producing an outline and jotting down any questions as you go.
Two weeks beforehand, meet with Prof. Thain to discuss the paper.
Create slides for a lecture of about 40 minutes.
One week beforehand, meet with Prof. Thain to go over your slides.
On the appointed day, give a brilliant lecture! Reserve ten minutes for the end for open discussion.
Each talk should follow this rough outline:
Problem: What is the problem that is being solved? What need does the user have that this system addresses?
General Solution: What is the general philosophy of the system described? Are there any constraints on how it must
be designed or operated?
Architecture: Describe the structure of the system, carefully indicating all of the major components and how they interact.
Examples: Describe in detail how the system operates in the common cases. Carefully indicate step-by-step what messages are exchanged and what interactions take place.
Hard Cases: Every system has a few "hard cases" that must deal with failures, contention, and other unexpected problems. Pick one or two hard cases and describe precisely how they are handled.
Results: If the paper describes experimental results, describe the most important results, and what conclusions can be drawn from them.
Recapitulation: Restate the problem and the solution method. Oftentimes, working through the examples will allow for a better understanding and a more precise statement of the problem.
Discussion: Propose two or three questions for discussion.
Following are papers for the supplemental readings:
N. Carriero and D. Gelernter,
The S/Net's Linda Kernel,
ACM Transactions on Computer Systems, 4:2, May 1986, pp. 110-129.
Douglas Thain, Todd Tannenbaum, and Miron Livny,
Condor and the Grid,
in Fran Berman, Anthony J.G. Hey, Geoffrey Fox, editors, Grid Computing: Making The Global Infrastructure a Reality, John Wiley, 2003. ISBN: 0-470-85319-0
Bryan Ford, Jacob Strauss, Chris Lesniewski-Laas, Sean Rhea, Frans Kaashoek, and Robert Morris,
Persistent Personal Names for Globally Connected Mobile Devices,
USENIX Symposium on Operating Systems Design and Implementation, 2006.
Ion Stoica, et al,
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications,
ACM SIGCOMM Conference, 2001.
Sage Weil, Scott Brandy, Ethan Miller, and Darrell Long,
Ceph: A Scalable, High-Performance Distributed File System,
USENIX Symposium on Operating Systems Design and Implementation, 2006.
Jeffrey Dean and Sanjay Ghemawat,
MapReduce: Simplified Data Processing on Large Clusters,
USENIX Symposium on Operating Systems Design and Implementation, 2004.