Distributed Computing
ETH Zurich

Distributed Systems Part 2 (HS 2009)

Note: Only second part, visit the first part of this course held by Prof. Mattern.

We present the characteristics and concepts of distributed systems, and discuss distributed control algorithms (flooding, mutual exclusion, logical clocks), communications models (remote procedure call, client-server models, synchronous and asynchronous communication), abstract communication principles (broadcast, events, tupel spaces), name services, communication middleware for open systems, infrastructure for ad hoc networking (JINI), cloud computing, and mechanisms for security and safety. Having a distributed system may permit getting away with failures and malfunctions of parts of the system. We discuss fault-tolerance issues (models, consensus, agreement) as well as replication issues (primary copy, 2PC, 3PC, Paxos, quorum systems). To get familiar with message passing communication, some of the exercises will be devoted to a practical lab where participants will develop software for a mobile platform (smart phones).

Topics: Distributed control algorithms (mutual exclusion, logical clocks), communication models (RPC, client-server, synchronous and asynchronous communication), abstract communication principles (broadcast, events, tupel spaces), communication middleware, security mechanisms, fault-tolerance (failure models, consensus, agreement), replication (primary copy, 2PC, 3PC, Paxos, quorum systems).

Course pre-requisites: - .

Course language: German or English.

Lecture by Roger Wattenhofer, Monday 8-11 @ IFW A36.

Exercises by Benjamin Sigg, Thomas Locher, Remo Meier Friday 8-10 @ IFW A36.

Exam review

From 1.3.2010 until 18.3.2010 you can review your exams. In case, none of the dates is suitable for you please contact fricker@tik.ee.ethz.ch.


Unfortunately this is the first time Prof. Wattenhofer teaches a significant part of the lecture. Here are a few general exam guidelines:
Also, some exercise questions could had been possible exam questions. In particular:

What to learn?

You have to learn everything that ca be found in the slides. The one exception are the hash-sets (chapter 8, from page 121 to the end of the chapter) which were not discussed in the lectures.


The exam is scheduled for Friday, 5. February 2010, from 9:00 to 12:00. You are not allowed to use the slides.
Both parts of the course have an equal weight on the final grade, the practical exercises of the first part have a weight of 15% to the final grade.

Question Session

We will hold a question session in which we (try to) answer your questions about this lecture. The session is on Thursday, 21. January 2010, 10:00 - 11:00 at ETZ F78.1 Please send us your questions ahead of time, at the latest until Wednesday, 20. January 2010 at 12:00 by email to the assistants.
The slides are now available: Download

Lecture material

Title PDF 1:1 PDF 4:1 Additional Material

Chapter 6
Fault Tolerance: Theory
Download Download ---

Chapter 7
Fault Tolerance: Practice
Download Download ---

Chapter 8
Download Download ---

Exercise material

Title PDF Files

Exercise 1
Assigned: 2009/11/06
Discussion: 2009/11/13

Exercise 2
Assigned: 2009/11/13
Discussion: 2009/11/20

Exercise 3
Assigned: 2009/11/20
Discussion: 2009/11/27
Chapter 6, Slide 132 and 137
Confusing 3PC (Slides)

Exercise 4
Assigned: 2009/11/27
Discussion: 2009/12/04

Exercise 5
Assigned: 2009/12/04
Discussion: 2009/12/11
Simulation.java (solution for task 2).

Exercise 6
Assigned: 2009/12/11
Discussion: none