你将学到什么
Agreeing on an incremental sequence of values and the related multi-Paxos algorithm
Atomic broadcast and replicated state machines for fault-tolerant services
Dynamic reconfiguration of distributed services
The timed asynchronous model of distributed systems, and the use of physical clocks
Efficient distributed algorithms based on the timed asynchronous model
Relaxed consistency models and the CAP theorem, including various consistency models and conflict-free replicated data types
课程概况
This course is the second course in a series of two. Both courses provide a solid foundation in the area of reliable distributed computing, including the main concepts, results, models and algorithms in the field.
In order to ensure that IT infrastructures – a key engine of operations for any organization – operate at full capacity and efficiency, it is vital to understand its core: distributed algorithms. To achieve this, the infrastructure itself must be reliable and resilient. This course continues on the foundations of distributed algorithms, introduced in ID2203.1x, and builds on these concepts at a higher level of complexity to develop the skills needed to build and maintain reliable and efficient distributed systems.
ID2203.2x covers specific advanced abstractions and algorithms including sequence consensus and multi-Paxos; atomic broadcast and replicated state machines. It also covers dynamic reconfiguration of services; the use of physical clocks in distributed systems; the CAP theorem, and weaker consistency models, including eventual consistency and conflict-free replicated data-types.
Students will experiment and develop a variety of distributed algorithms in an interactive, engaging programming environment using the Scala programming language. They will be guided throughout the programming assignments and provided with intuitive examples to help them get started.
To complete the course with a full grade (100%) students are required to answer the graded quizzes provided every week, as well as the programming assignments.
预备知识
It is recommended that students complete part 1 of this course series (ID2203.1x) ahead of starting part 2. Students also need at least an intermediate level of knowledge in computer programming, basic knowledge in computer science and mathematical skills.
The course will use the programming language Scala in the programming assignments. You can find a good tutorial on Scala here. An interesting tutorial online can be found here.





