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 14 - Time and Clocks in Distributed Systems
Algorithms (PDF)
Gossip-based Ballot Leader Election
Reference Part 1:
Lecture Slides (PDF)
Contents, readings, and acknowledgments
Lecture 1 Introduction to distributed systems
Review: Sets, relations and transition systems
Lecture 2 Input-Output automata
Lecture 6 Causal-order Broadcast
Lecture 7 Distributed Shared Memory
Proof of the compositionality of linearizability
Algorithms (PDF)
Eventually Perfect Failure Detector