Seminars
Message board is just available from Monday to Friday
Online meeting (every Wednesday, Group 1 and Friday, Group 2) (Zoom link) (Passcode: ds2022).
The deadline for Quiz and Practical Work Assignment is the following week Wednesday, 23:59:00.
- Seminar 1 (09.02/11.02)
- Summary: During the lecture, computing networking through RPC was explained. In this seminar, you will complement that concept with a practical exercise in Python.
- Seminar 1 (Video)
- Link to Quiz 1 (Moodle)
- Instructions
- Seminar 2 (16.02/18.02)
- Summary: Distributed systems rely on RPC and threads to create concurrent connections between multiple components (simultaneously). Every programming language provides basic primitives to achieve this. In this seminar, we will explore these primitives in the context of Python.
- Seminar 2 (Video)
- Link to Quiz 2 (Moodle)
- Instructions
- Seminar 3 (23.02) No sessions on Friday (holiday due to Estonian Independence Day)
- Summary: System models capture behaviors in the system as it is influenced by failures. To improve reliability, multiple mechanisms are in placed to avoid the system to halt completely in the presence of failures. In this seminar, you will explore exponential back-off as a default way to handle failures when clients connect to a server in Python.
- Seminar 3 (Video)
- Link to Quiz 3 (Moodle)
- Instructions
- Seminar 4 (02.03/04.03)
- Summary: Time is used in a distributed system for a variety of reasons ranging from monitoring data validity to regulate access time to resources. In this seminar, we will explore the Berkeley algorithm as a method that can be used to synchronize clocks between processes/nodes.
- Seminar 4 (Video)
- Link to Quiz 4 (Moodle)
- Instructions
- Seminar 5 (09.03/11.03)
- Summary: Distributed applications do not look at when things happened, but instead, in what order they happened (happens-before relation). Thus, a logical clock is required to allow a reliable way of ordering events. In this seminar, we will explore the Lamport clocks and Vector clocks to calculate the timestamps of events.
- Seminar 5 (Video)
- Link to Quiz 5 (Moodle)
- Instructions
- Seminar 6 (16.03/18.03)
- Summary: Sometimes a single process in the system needs to have special powers, e.g., grant access of a shared resource and assign work to others. Thus, a coordinator is required to performs functions needed by other processes in distributed systems. In this seminar, we will explore the Bully Algorithm to select a special process as a coordinator.
- Seminar 6 (Video)
- Link to Quiz 6 (Moodle)
- Instructions
- Seminar 7 (23.03/25.03)
- Summary: Replication in distributed systems involves duplication of functionality of nodes/processes to improve the scalability, fault-tolerance and performance of the system. However, by doing this, data management of replicas becomes a complex problem to solve. In this seminar, we will explore the implementation of replicas in distributed systems.
- Seminar 7 (Video)
- Link to Quiz 7 (Moodle)
- Instructions
- Seminar 8 (30.03/01.04)
- Summary: Consensus is a fundamental problem in distributed systems. The main goal of consensus is in making a group of processes agree on a particular value that was proposed in the first place by a process within the group. Consensus can be applied to a wide range of applications ranging from mutual exclusion to byzantine failure detection. In this seminar, we will explore a modern solution to support consensus, specifically we will explore the use of Raft.
- Seminar 8 (Video)
- Link to Quiz 8 (Moodle)
- Instructions
- Seminar 9 (06.04/08.04)
- Summary: Consistency models are used in distributed systems to enforce that processes have the same view on the data even if the data is located in different replicas. A consistency model depicts a contract between the resources storing data and the processes updating (performing read and write operations). In this seminar, we will put in practice the Sequential Consistency model.
- Seminar 9 (Video)
- Link to Quiz 9 (Moodle)
- Instructions
- Seminar 10 (13.04) No sessions on Friday (holiday due to Easter)
- Summary: Replica consistency is of critical important when distributing data across multiple nodes. Besides simple read and write operations, ultimately, a group of operations is applied when modifying data from replicas (aka transactions). To keep replicas consistent, transactions typically enforce different properties (ACID), which are used to decided whether a transaction is committed or roll-backed. In this seminar, we will explore the implementation of two-phase commit protocol (2PC) for replica consistency to manage transactions in a distributed system
- Seminar 10 (Video-part1) (Video-part2)
- Link to Quiz 10 (Moodle)
- Instructions
- Seminar 11 (20.04/22.04) No practical session (invited lecturer only in the main course session)
- Seminar 12 (27.04/29.04)
- Summary: Scalability in distributed systems is required to adjust the capacity of the system based on the computing load that its processing. Different techniques can be used to achieve a scaling system, including partitioning, functional decomposition and duplication. In this seminar, we will explore the implementation of a partitioning method (DHT) for scaling a distributed application
- Seminar 12 (Video)
- Link to Quiz 11/12 (Moodle)
- Instructions
- Seminar 13 (04.05/06.05)
- Summary: The runtime performance of a system determines the quality of the service that is provision online. To quantify this performance, several metrics can be derived by observing the system in execution. Data about system performance can be collected using white and black-boxes approaches. In this seminar, we will explore a monitoring tool, namely JMeter, which is an open source tool for workload testing and performance analysis.
- Seminar 13 (Video)
- Link to Quiz 13 (Moodle)
- Instructions
- This is the last seminar
Policy for late submissions
Submitted seminar after deadline are granted Zero (0) points. No extensions are also considered for quizzes nor seminars.
NOTE: if you have some issues about the submission, please inform us before the deadline.