Please use the newsgroup at su.class.cs244b on news.stanford.edu for discussions related to the class. Any private questions can be sent to the staff at: cs244b-spr0809-staff@lists.stanford.edu.
3/26 -- The first discussion session will be during the first week on 4/3. We will talk about the first project, Mazewar.
4/23 -- Midterm date posted. Mazewar comments returned.
5/6 -- Assignment two posted. Discussion section on 5/8
6/4 -- Final exam location posted.
Many systems and applications beyond a relatively modest scale end up being
distributed for a variety of reasons, including fault-tolerance, performance,
security and the geographical nature of the requirements.
Although the common case of a distributed system is separate computers
interconnected by the Internet or some networking technology,
many of the challenges and solutions come into play as soon as the application
consists of two or more processes that do not share a common address space.
This course explores the issues to address in designing and implementing
distributed systems with a particular emphasis on how to deal with the
shared state between separate processes within such a system.
Topics include: distributed shared memory, object-oriented structuring of
distributed systems, real/logical/virtual time,
directories and naming, distributed file systems,
authentication and security, distributed process scheduling,
presentation protocols and communication support for distributed systems.
The material complements network-layer courses by building on the transport
layer to provide higher-level applications and services.
Lectures
Most lectures are based on notes by the instructor,
typically one chapter per 2 lectures.
The chapter for the next week will be posted on-line in postscript and pdf
by Sunday night of the week of the lectures, if not before.
There is expected to be several guest lectures that depart from this pattern
and will be noted as they arise.
Overview
[ps,
pdf]
Distributed Shared Memory
[ps,
pdf]
Structuring of Distributed Systems
[ps,
pdf]
Clocks: Real, Virtual and Logical
[ps,
pdf]
CATOCS slides[ppt]
Directories and Naming
[ps,
pdf]
Accounts and Authentication
[ps,
pdf]
Transactions, Agreement and Reconiliation
[ps,
pdf]
Future Directions and Issues
[ps,
pdf]
Current Events
Below are a list of current events/readings related to the course. We expect you to have read the articles and
understand the basic problems raised, but not specific details.
FAA exec offers blunt, scary assessment of its network security Posted 5/1/09
GhostNet is watching Posted 5/1/09
Research Papers
As augmentation to this material,
there may be one or two research papers that are listed as readings at the
end of each chapter and/or listed together with the chapter material
that you are also responsible for.
The chapters also list research papers as references,
meaning they are optional reading and not required in any way
to so well in the course.
Students should be able to access these papers online using Stanford's
site license for the ACM digital library from any computer with a
Stanford IP address. If you have difficulties accessing the papers
online, please contact the TA.
B. Stone-Gross et al., Your Botnet is My Botnet: Analysis of a Botnet Takeover UCSB Technical Report Note: not covered on final
P. Helland, Life beyond Distributed Transactions: an Apostate’s Opinion
G. DeCandia et al. Dynamo: Amazons Highly Available Key-value Store SOSP 2007
Smart Cheaters Do Prosper: Defeating Trust and Reputation Systems AAMAS 2009
Public Key Certificates Considered Harmful
This morning's MD5 attack - resolved Article related to Public Key Certificates Considered Harmful from student, Max Martynov, and his comments
D.Cheriton and D. Skeen,
Understanding the Limitations of Causally and Totally-Ordered
Communication,
SOSP'93, Dec. 1993.
D. Mills,
Internet Time Synchronization: the Network Time Protocol,
IEEE Transactions on Communication.
D. Jefferson et al,
Distributed Simulation and the Time Warp Operating System,
SOSP'87.
S. Baset and H. Schulzrinne
An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol
B. Lampson,
Designing a Global Name Service,
5th PODC, August, 1986.
Demers et al.,
Epidemic Algorithms for Replicated Database Maintenance,
PODC'87.
Textbooks?
There is no text that really corresponds to the material and focus of this
course.
However, if you really want a textbook treatment,
you can refer to: Distributed Systems: Concepts and Design
by George Coulouris, Jean Dollimore, and Tim Kindberg, Addison Wesley,
August 2000 (3rd edition).
Project/Problem Sessions
Discussion sessions will typically be in Gates B01 on Fridays from 3:15 - 4:05 pm.
Final Review Session Slides [ppt]
Distributed Replicated Files Discussion Session - Date: 5/8 Location: Gates B01 Time: 3:15-4:05. Slides [ppt]
Mazewar Discussion Session - Date: 4/3 Location: Gates B01 Time: 3:15-4:05.
Chapter 3 Review Session Part 1 Slides [pdf]
Chapter 3 Review Session Part 2 Slides [ppt]
There is expected to be 2-3 programming assignments with the 3rd possibly
morphing into a homework assignment because of time constraints.
The first programming assignment is planned to be posted by the first lecture.
Details to follow.
Assignment Details
Assignment #2 - Distributed Replicated Files
Distributed Replicated Files Session Slides
Assignment 1: Mazewar
Mazewar Review Session Slides
Mazewar ports are at /usr/class/cs244b/mazewar/port_info.
Collaboration
Of course you are permitted and encouraged to discuss design strategies with
one another, but there should be no sharing of code or header files, and all
assistance (other than from the TA or instructor) must be cited. See this
link for
more
detailed explanation of what is permitted and what is not.
Working on assignments
You may work on the assignments on any Unix machine with a modern C/C++ compiler and
debugger. But since we will evaluate your assignment on one of the Linux
machines in
the Terman Engineering Computer Cluster we
strongly recommend that you develop and test your code on one of these machines.
You may find the Unix command ssh -X pod.stanford.edu to be useful at your Linux or OS X prompt.
Exams are closed book, closed notes.
The final is normally 45 percent of the grade, midterm 15 percent
and assignments the remaining 40 percent.
Off-campus students are encouraged to come onto campus for the exams
if at all feasible.
If necessary, remote SITN/SCPD students may
take the exams at their company sites; please have your local tutor
send us email to make arrangements.
These sample exams should aid you in your studying:
Prior Exams
Late assignment policy
You are allowed 3 late day credits for the quarter which you may
use as needed to accommodate your schedule.
Otherwise, late assignments may be penalized 10% for each 24-hour period or
fraction thereof (including weekends) that they are late.
Beyond 3 days, they are graded/credited only at the sole discretion of the TA.
Please try to make prior arrangements with the TA or instructor
if you anticipate any problem with this policy.
Since lectures are made available via Stanford Online
on the same day they are taped, SITN/SCPD students are expected to follow the same schedule
as the rest of the class. This means that the above late assignment policy applies to
SITN/SCPD students as well; exceptions are not granted due to students' work obligations.
Honor code
It should go without saying, but because computer science project courses have a long
and ugly history of honor code violations, we will say it anyway:
The Stanford honor code
applies to all work done in this course. All work you submit must
be your own. Suspected violations of the honor code will be investigated and referred to the
Office of Judicial Affairs.
Honor code violations are a serious matter, and being found guilty of one can ruin your
academic career. Review the honor code.
If you ever find yourself uncertain about how it applies to your situation, ask.
Asking what you might think is a silly question is
better than risking your career.
Incomplete policy
No incompletes area given in this course, so make sure you determine before the
drop deadline whether you can complete it satisfactorily.