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.