Skip to main content

Scala

We are using the Scala programming language in the labs of the course. You can find a good tutorial on Scala here. An interesting tutorial online is here

Programming Environment

We disseminate a  Virtual Machine image bundle that contains Kompics and Zeppelin, which we call Zeppelics. In order to test and submit your assignments you will need to download Zeppelics from the Downloads Page and boot it using Oracle's Virtual Box.

Lecture Slides (PDF)

Lecture 10 - RSMs and Sequence Consensus

Lecture 11 - Leader-based Sequence Paxos

Lecture 12 - Raft

Lecture 13 - Reconfiguration

Lecture 14 - Time and Clocks in Distributed Systems

Lecture 16 - CRDTs

Algorithms (PDF)

Gossip-based Ballot Leader Election

Sequence Paxos

Reference Part 1:

Lecture Slides (PDF)

Contents, readings, and acknowledgments  

Lecture 1 Introduction to distributed systems

Introduction to Kompics

Review: Sets, relations and transition systems

Lecture 2 Input-Output automata

Lecture 3 Basic Abstractions

Lecture 4 Failure Detectors

Lecture 5 Reliable Broadcast

Lecture 6 Causal-order Broadcast

Lecture 7 Distributed Shared Memory

Proof of the compositionality of linearizability 

Lecture 8 Consensus

Lecture 9 Paxos

Algorithms (PDF)

Job Handler

Stubborn Links

Perfect Failure Detector

Eventually Perfect Failure Detector

Leader Election

Eventual Leader Detection

Best Effort Broadcast

Reliable Broadcast

Uniform Reliable Broadcast

Causal Broadcast

Regular Register

Atomic Register

Sequentially Consistent Register

Consensus in the Fail-Stop Model