UNIVERSITY OF CRETE
COMPUTER SCIENCE DEPARTMENT
Lectures (Fall 2007): Mondays and Wednesdays 11:00-13:00 in RA 201.
Backup Classes, if needed: Tues 15:00-17:00 in L 206 and Fridays 11:00-13:00 in RA 201. (There will be announcements when these take place.)
Name |
|
Office |
Office Hours |
hy556@csd.uoc.gr |
G 215 |
Mondays and Wednesdays, 17:00-18:00 |
|
Teaching Assistant: Dimitris Antoniadis |
hy556@csd.uoc.gr |
To Be Determined |
To Be Determined |
Teaching Assistant: Elias Athanasopoulos |
hy556@csd.uoc.gr |
To Be Determined |
To Be Determined |
Announcements
1) Please make sure you subscribe to the hy556-list mailing list. We will use this list to make important announcements as the semester proceeds. See directions below for how to subscribe.
2) Please send us three days on which you would like to present papers Send your preferences to hy556-list@csd.uoc.gr
(3) By Monday, May 12 you need to send the names of your project group members to the staff mailing list (hy556@csd).
(4) By Monday, May 19, you need to send the topic you have chosen for your project to the staff mailing list (hy556@csd).
Course Description
Essentially all computer systems distribute state and computation across
network elements. This course aims to familiarize CS graduate students with the
fundamental problems arising in the design, development, deployment and
management of distributed software systems.
Topics covered in this course include: interprocess
communication and remote invocation, distributed naming, synchronization, time
and event ordering, fundamental algorithms such as vector clocks, coordination
and agreement, election, termination detection, distributed transaction
mechanisms, replication of data and computation, web caching, fault tolerance,
distributed shared memory, distributed object frameworks, distributed file
systems, cryptographic security, case studies of real-world systems
This class is geared toward graduate students at all levels as well as advanced undergraduates (Computer Science 345 and Computer Science 335 are required).
Textbook & Readings
Textbook: Reliable Distributed Systems, Kenneth Birman,
Publisher: Springer, Year: 2005. Note: the lecture slides for this class are
based on a variant of slides provided by the author of this book.
Assignments
This course will involve listening to lectures, reading papers, writing reviews
for papers, participating in class discussions, presenting papers and leading
class discussions, and a final project.
Students will be required to write reviews for papers they read. Look here to get information on how to write a review. Reviews are due before each class by email. (Send these as a single email with "Review for Day/Month" in the subject line, where Day/Month is the current lecture date. Send the email to hy556@csd.uoc.gr. Please send reviews in plain text.)
Students will actively participate in class discussions. For each paper, we will study the contribution of the paper, place this contribution in context of previous literature, critique the methodology used and the evaluation presented. Be prepared to come to class having read the paper carefully and ready to discuss questions or comments you have in detail. Class participation is a portion of the overall grade, and an easy way for you to gain points in the class.
In addition, students will present papers on one or more days and lead the discussion in the class. The instructor will help you lead the discussion.
Note: You must have access to a printer so you may download, print copies of the papers (available below), and bring them to class for the discussions. We recommend you scribble directly on a paper any notes or questions that arise as you are reading. In fact, taking detailed notes on the paper and then reading through them before writing your review and before coming to class is a good idea. You are also welcome to send any questions about the paper to the staff before class if you feel shy asking about a particular detail in the paper. There are no dumb questions!!
Finally, students will be required to undertake a final project. Students are to work in groups of two or three (two preferred) and are expected to design, document, and demonstrate a substantial distributed system. This system is to be developed in a modular way. Students will choose a project topic from a list of projects we provide or may propose their own topic. At the end of the course, students will present their work with a short demo/presentation. Students will choose the problem from a list of problem descriptions we provide.
Class Mailing List
Class mailing list: hy556-list@csd.uoc.gr . We will use this list to send out
any important announcements, so please be sure to subscribe. You can subscribe
to the mailing list by sending email to majordomo@csd.uoc.gr
with a blank Subject line and a single line of text in the Body of the email
stating: subscribe hy556-list
Grading
Reviews: 10%
Paper presentations: 20%
Class Participation: 10%
Final Project: 60%
Syllabus & Schedule (tentative)
(bibliography)
Date
|
Topic
|
|
Presenter
|
18/2 |
Course Overview |
-- No reading -- |
|
20/2 |
Fundamentals |
Chapter 1 |
|
22/2 (Backup class) |
Basic Communication, Part 1 |
|
|
25/2 |
Basic Communication, Part 2 |
|
|
27/2 |
Remote Procedure Call and Client-Server Systems |
Chapter 4, 7.1-7.2 |
|
3/3-12/3 |
-- No class -- |
-- |
-- |
17/3 |
Stateless and Stateful Client Server Systems |
Chapter 5 |
|
21/3 (Backup class) |
Transactions |
Chapter 24, Section 14.5 |
|
24/3 |
Web Services |
Chapter 10 |
|
26/3 |
No Class |
-- |
-- |
31/3 |
No Class |
-- |
-- |
2/4 |
Content Distribution Networks |
-- |
|
7/4 |
P2P Overview |
|
|
9/4 Postponed paper discussion until Mon 14/4 |
DHTs |
A Scalable Content Addressable Network |
Pantelis Petridis, Vassilis Pappas |
14/4 |
|
Resilient Overlay Networks (RON) and CAN, Chord papers |
tsintar |
16/4 |
Web Proxies + Cooperative Caching |
On the Scale and Performance of Cooperative Web Proxy Caching |
Ale3andros Kapravelos |
21/4-30/4 |
No class – Easter holiday |
-- |
-- |
5/5 |
RON, Internet-scale services |
RON paper (from 14/4) |
|
7/5 |
DNS, Accountability |
CoDNS: Improving DNS Performance and Reliability via
Cooperative Lookups PeerReview:
Practical Accountability for Distributed Systems |
|
12/5 |
BFT, Sinfonia |
HQ Replication: A Hybrid
Quorum Protocol for Byzantine Fault Tolerance Sinfonia:
A New Paradigm for Building Scalable Distributed Systems |
|
14/5 |
Distributed Storage |
Bigtable:
A Distributed Storage System for Structured Data EnsemBlue: Integrating Distributed Storage and Consumer Electronics |
|
19/5 |
Mobility, DFS |
Persistent Personal Names for Globally Connected Mobile Devices |
|
21/5 |
Chubby, PlanetLab |
The Chubby Lock Service for Loosely-Coupled Distributed Systems |
|
26/5 |
CAP, Dandelion |
Brewer's Conjecture and the Feasibility of Consistent Available Partition Tolerant Web Services Dandelion: Cooperative
Content Distribution with Robust Incentives |
|
28/5 |
OASIS, ePOST |
OASIS - Anycast for Any Service Experiences
in Building and Operating ePOST, a Reliable
Peer-to-Peer Application |
|
17/6 |
-- No class-- |
Projects Due. |
-- |
Class Paper Bibliography (plus other interesting papers)
A Scalable Content
Addressable Network.
S. Ratnasamy, P. Francis, M. Handley, R. Karp and S. Shenker. Proceedings of the ACM SIGCOMM
2001 Conference. August, 2001.
Chord: A Scalable Peer-to-peer Lookup Service
for Internet Applications.
I. Stoica and R. Morris and D. Karger
and M. F. Kaashoek and H. Balakrishnan.
Proceedings of the ACM SIGCOMM 2001 Conference.
August, 2001.
Serving DNS Using a
Peer-to-Peer Lookup Service. Russ Cox, Athicha Muthitacharoen and Robert T. Morris. Proceedings of
the First International Workshop on Peer-to-Peer Systems (IPTPS '02). March
2002.
Dynamo: Amazon's Highly Available Key-Value Store, G. DeCandia, D. Hastorun, M. Jampani, G Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, W. Vogels, Symposium on Operating Systems Principles (SOSP), 2007.
CoDNS: Improving DNS Performance and Reliability via
Cooperative Lookups, K. Park, V. Pai, L. Peterson, Z.
Whang, Symposiutm on
Operating Systems Design and Implementation (OSDI) 2004.
Sinfonia: A New Paradigm for Building Scalable
Distributed Systems, Marcos K. Aguilera, Arif
Merchant, Mehul Shah, Alistair Veitch,
and Christos Karamanolis, SOSP 2007.
PeerReview: Practical Accountability for
Distributed Systems, Andreas Haeberlen, Petr Kouznetsov, and Peter Druschel, SOSP 2007.
HQ
Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance, James Cowling,
Daniel Myers, and Barbara Liskov, Rodrigo Rodrigues, Liuba Shrira, Brandeis University, OSDI 2006.
BAR
Gossip, Harry C. Li, Allen Clement, Edmund L. Wong, Jeff Napper,
Indrajit Roy, Lorenzo Alvisi,
and Michael Dahlin, OSDI 2006.
Bigtable: A Distributed Storage System for
Structured Data, Fay Chang, Jeffrey Dean, Sanjay Ghemawat,
Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar
Chandra, Andrew Fikes, and Robert E. Gruber, OSDI
2006.
EnsemBlue: Integrating Distributed Storage and
Consumer Electronics Daniel Peek and Jason Flinn,
OSDI 2006.
Persistent
Personal Names for Globally Connected Mobile Devices, Bryan Ford, Jacob
Strauss, Chris Lesniewski-Laas, Sean Rhea, Frans Kaashoek, and Robert
Morris, OSDI 2006.
Ceph: A Scalable, High-Performance Distributed File
System, Sage A. Weil, Scott A. Brandt, Ethan L. Miller, Darrell D. E. Long, and
Carlos Maltzahn, OSDI 2006.
The
Chubby Lock Service for Loosely-Coupled Distributed Systems, Mike Burrows, OSDI
2006.
Brewer's
Conjecture & the Feasibility of Consistent Available Partition-Tolerant Web
Services, Seth Gilbert and Nancy Lynch, SSIGACT News 33(2) June 2002.
Dandelion:
Cooperative Content Distribution with Robust Incentives,
OASIS - Anycast for
Any Service, Mike Freedman, David Mazieres, NSDI
2006.
Experiences in building and operating ePOST, a reliable peer-to-peer application, Mislove et al., NSDI 2006.