UNIVERSITY OF CRETE
COMPUTER SCIENCE DEPARTMENT

CS 556. Distributed Systems

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

E-mail

Office

Office Hours

Instructor: Mema Roussopoulou

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.

Readings will also include papers.  Links to papers are included in the class schedule below.


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

Readings

Presenter

18/2

Course Overview

-- No reading --

Roussopoulou

20/2

Fundamentals

Chapter 1

Roussopoulou

22/2 (Backup class)

Basic Communication,

Part 1

 

Roussopoulou

25/2

Basic Communication, Part 2

 

Roussopoulou

27/2

Remote Procedure Call and Client-Server Systems

Chapter 4, 7.1-7.2

Roussopoulou

3/3-12/3

-- No class --

--

--

17/3

Stateless and Stateful Client Server Systems

Chapter 5

Roussopoulou

21/3 (Backup class)

Transactions

Chapter 24, Section 14.5

Roussopoulou

24/3   

Web Services  

Chapter 10

Roussopoulou

26/3

No Class

--

--

31/3

No Class

--

--

2/4

Content Distribution Networks

--

Roussopoulou

7/4

P2P Overview

 

Roussopoulou

9/4 Postponed paper discussion until Mon 14/4

DHTs

A Scalable Content Addressable Network

 

Chord

 

Pantelis Petridis, Vassilis Pappas

14/4

Overlay Networks  

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)
Dynamo: Amazon's Highly Available Key-Value Store

 

Kriton Tsintaris, Andreas Makridakis

7/5

DNS, Accountability

CoDNS: Improving DNS Performance and Reliability via Cooperative Lookups

 

PeerReview: Practical Accountability for Distributed Systems

 

Theodoros Dionisiou, Babis Aronis

12/5

BFT, Sinfonia

HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance

 

Sinfonia: A New Paradigm for Building Scalable Distributed Systems

 

John Velegrakis, Manos Zidianakis

14/5

 Distributed Storage

Bigtable: A Distributed Storage System for Structured Data

 

EnsemBlue: Integrating Distributed Storage and Consumer Electronics

Kiriakakis Emmanouel, Nikiforakis Nikos

19/5

Mobility, DFS

Persistent Personal Names for Globally Connected Mobile Devices

 

Ceph: A Scalable, High-Performance Distributed File System

Zarras Apostolis, Vicky Papavasileiou

21/5

Chubby, PlanetLab

The Chubby Lock Service for Loosely-Coupled Distributed Systems

 

Experiences Building PlanetLab

Zoe Sebepou, Alvanos Michalis

26/5

CAP, Dandelion

Brewer's Conjecture and the Feasibility of Consistent Available Partition Tolerant Web Services

 

Dandelion: Cooperative Content Distribution with Robust Incentives

Stratakis Giorgos, tzenakis

28/5

 OASIS, ePOST

OASIS - Anycast for Any Service

 

Experiences in Building and Operating ePOST, a Reliable Peer-to-Peer Application

 

polakis, kartson

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. San Diego, CA.

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. San Diego, CA.

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. Cambridge, MA.

 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.

 

Experiences Building Planetlab, Larry Peterson, Andy Bavier, Marc E. Fiuczynski, and Steve Muir, 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, Michael Sirivianos Jong Han Park Xiaowei Yang Stanislaw Jarecki USENIX 2007.

 

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.