Distributed Computing
ETH Zurich

Distributed Systems Part 2 (HS 2017)

Course CataloguePrevious Year

Note: This page covers only the second part of the course. Visit the first part held by Prof. Mattern here.

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).

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

Course pre-requisites: None.

Course language: German and English.

Lecture by Roger Wattenhofer, Monday 9.15-11.00@ CAB G 11, Friday 9.15-11.00@ CAB G 61.
Exercises by Manuel Eichelberger, Monday 11.10-11.55@ CAB G 11, Friday 11.10-11.55@ CAB G 61.

Bonus: You can earn up to 20 bonus points ahead of the exam. Your task is to create an exam question for one of the topics covered in Part 2 of the lecture. Click here for details. Update: Round 2.

News

12.1.2018A Q&A session will be held on Friday, February 2nd, at 13.15 in CAB G 11. Please submit your questions at the latest 48 hours prior to Manuel with subject line [DistSys Q&A].
22.2.2018There will be two exam review sessions for the second part of the "Distributed Systems" lecture in the room ETZ G 88:
  • Thursday, March 8, 9:00 - 11:30 am
  • Wednesday, March 21, 1:30 - 4:30 pm
Notes:
  • No registration is necessary.
  • At most two students can look at their exam at the same time. Thus, there might be a queue.
  • In order to minimize the time your fellow students have to wait, we kindly ask you to limit your exam review to 20 minutes.
  • Please bring your student ID card; you will not be allowed to see your exam without this.

Lecture Material

Lecture material and exercise sheets will be uploaded here as the lecture progresses.

Title Lecture Notes Exercises Assistants Additional Material
Introduction
2017-11-03 (Friday)
PDF
PDF 2-on-1
--- --- ---
Chapter 1
Fault Tolerance & Paxos
2017-11-03 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Georg
Zeta
---
No Lecture
2017-11-06 (Monday)
--- --- --- ---
Chapter 2
Consensus
2017-11-10 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Conrad
Zeta
---
Chapter 3
Byzantine Agreement
2017-11-13 (Monday)
PDF
PDF 2-on-1
Exercises
Solutions
Darya
Gino
---
Chapter 4
Authenticated Agreement
2017-11-17 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Georg
Gino
---
Chapter 5
Quorum Systems
2017-11-20 (Monday)
PDF
PDF 2-on-1
Exercises
Solutions
Manuel
Simon
Slides
Chapter 6
Eventual Consistency & Bitcoin
2017-11-24 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Conrad
Pankaj
---
Chapter 7
Distributed Storage
2017-11-27 (Monday)
PDF
PDF 2-on-1
Exercises
Solutions
Gino
Simon
---
Chapter 8
Game Theory
2017-12-01 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Gino
Manuel
---
Chapter 9
Locking
2017-12-04 (Monday)
PDF
PDF 2-on-1
Exercises
Solutions
Simon
Conrad
Slides
[AMP Chapter 7]
Chapter 10
Concurrency
2017-12-08 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Manuel
Conrad
Slides
[AMP Chapter 9]
[AMP Chapter 13]
Chapter 11
Consistency & Transactional Memory
2017-12-11 (Monday)
PDF
PDF 2-on-1
Exercises
Solutions
Pankaj
Manuel
[AMP Chapter 3]
[AMP Chapter 18]
Chapter 12
PiChain & Ethereum
2017-12-15 (Friday)
PDF
PDF 2-on-1
--- --- ---
Android Project
Presentations & Demos
2017-12-18 (Monday)
(see Part 1 of the lecture)
2017-12-22 (Friday) (see Part 1 of the lecture)

References

All references are accessible from within the ETH network.

[AMP] The Art of Multiprocessor Programming
Maurice Herlihy, Nir Shavit.
Elsevier/Morgan Kaufmann, 2008, ISBN 978-0-12-370591-4

Exam Preparation

The written exam will last 180 minutes and include questions from both parts of the lecture (90 points for each part). No written or electronic aids are permitted.

Concerning part 2 of the lecture, generally speaking, all material covered by the lectures and the exercises may be tested in the exam. The lecture notes (accessible above) include some additional material, which is not relevant for the exam.

Not all the course material is relevant for the exam. The following is a list with the exceptions:

For practice and to get a feel for the style of questions in the exam you may consult exams from previous years provided here: HS09, HS10, HS11, HS12, HS13, HS15, HS16. Beware that the topics covered have shifted around a little over the years (for example, network updates were not part of this year's course).

Changelog

7.12.2017Last two lecture topics switched.
8.12.2017Extended concurrency script.
12.12.2017Last lecture topic changed.
12.1.2018Algorithm 7.1 and Theorem 7.2 corrected.