Seminars
Message board is just available from Monday to Friday
Online meeting (every Wednesday, Group 1 and Friday, Group 2) (Zoom link) (ID:Passcode:).
The deadline for Quiz and Practical Work Assignment is the following week Wednesday, 23:59:00.
- Seminar 1 (08.02/10.02)
- Summary: During the lecture, computing networking through gRPC 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 (15.02/17.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 (22.02/24.02)No session on 24.02 Friday 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 (01.03/03.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 physical clock synchronization methods that can be used to synchronize clocks between processes/nodes
- Seminar 4 (Video)
- Link to Quiz 4 (Moodle)
- Instructions
- Seminar 5 (08.03/10.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 (15.03/17.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 Ring Algorithm to select a special process as a coordinator.
- Seminar 6 (Video)
- Link to Quiz 6 (Moodle)
- Instructions
- Seminar 7 (22.03/24.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 because of inconsistency. In this seminar, we will explore the concept of quorum for consistency in distributed systems.
- Seminar 7 (Video)
- Link to Quiz 7 (Moodle)
- Instructions
- Seminar 8 (29.03/31.03)
- Summary: In distributed systems, consistency models are used to ensure that processes have the same view of the data, even when the data is spread among various replicas. A consistency model shows an agreement between the tools used to store data and the procedures used to update it (performing read and write operations). In this session, we will look at the consistency models and put the quorum system into practice at the end.
- Seminar 8 (Video)
- Link to Quiz 8 (Moodle)
- Instructions
- Seminar 9 (05.04) No session on Friday (Due to Easter holiday)
- Summary: A fundamental issue in distributed systems is consensus. Making a collection of processes agree on a specific value that was originally put out by one of the processes in the group is the primary objective of consensus. From mutual exclusion to byzantine failure detection, consensus can be used in a variety of applications. In this session, we'll look at a contemporary approach to fostering consensus, specifically the use of Raft.
- Seminar 9 (Video)
- Link to Quiz 9 (Moodle)
- Instructions
- Seminar 10 (12.04/14.04)
- Summary: End-users rely on names to reduce the complexity of interacting with a distributed system as users can rely on human readable formats to refer to different part of the system. Naming is a key process to achieve this and it is available over the Internet through the DNS (Domain Name Service) infrastructure. In this seminar, we will dissect the name resolution process by using the DIG tool utility.
- Seminar 10 (Video)
- Link to Quiz 10 (Moodle)
- Instructions
- Seminar 11 (19.04/21.04)
- Summary: A software architecture provides the blueprint schematic for instantiating a system. Based on the architectural style pattern chosen, it is possible to observe also differences on how to implement the system. In this seminar, we will explore the differences in implementation that arise when developing an object-based and resource-centered architectures.
- Seminar 11 (Video)
- Link to Quiz 11 (Moodle)
- Instructions
- Seminar 12 (26.04/28.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 12 (Moodle)
- Instructions
- Seminar 13 (24.05/26.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) - (Content from lectures 13, 14 and 15)
- Instructions
- Running Score
AGAIN, SUBMISSION OF SEMINAR TASKS HAVE A DEADLINE OF THE FOLLOWING WEDNESDAY 23.59 FOR BOTH GROUPS
- [OPTIONAL] Missing a seminar? or would like to present an alternative seminar task? or simply would like to learn more?
- Valid to replace two seminars, meaning two quizzes and two practical exercises.
- How to participate: We are testing an online course for Trustworthy AI. Please register and test the course. By testing this alpha course version, it is possible then to replace two seminar tasks with it
- Register and test
NOTE: if you have some issues about the submission, please inform us before the deadline.