Distributed Systems : Home Exercise 3
Topics
- Fault-tolerance
- Common-mode failures
- Design diversity
Group size
This exercise can be performed in groups of max 3 people.
Background
Read the article Fault Tolerance by Design Diversity: Concepts and Experiments, provided at the URL below using your Dept. user account:
https://www.cs.helsinki.fi/i/pervila/distsys_f2011/hex3.pdf
Assignment
Write an example program that consists of at least two objects. The first object A calls one or more methods of the second object B. B must
contain at least three faults: they will be intentionally introduced into the program code. A will be partially fault-tolerant.
One of the faults in B shall remain invisible ("latent") to A. The second shall manifest as an error, but will be detected by A and handled ("tolerated") by the
method invocation. The third fault should be left unhandled by A and propagate as a failure to the user of A.
Requirements
In the program, each fault must be carefully documented, as well as the execution sequence that causes the faults to propagate as errors or failures.
The purpose of the exercise is to show that you have understood the threefold model of malfunctions presented in the article.
The program code must run on the Department's workstations. Please do NOT use the shell servers shell.cs alias melkinpaasi or users.cs for programming this task.
Using an Ukko node is fine.
Suggestions
A scripting program language like Perl, Python, or Ruby is *strongly* recommended. The exception-handling routines of the chosen language may be employed.