Distributed Systems : Exercise 2

1. Transparency types

Sources

  1. Section 1.2.2 Transparency, T&vS 1st Ed.
  2. Section 1.2.2 Distribution Transparency, T&vS 2nd Ed.

Give an example of each transparency type. Use as examples

a) a distributed file system

b) printing service (a group of printers), which are intended for mobile-user applications.

Why is it not always a good idea to implement transparency?

2. RPC implementations

Look at slide 22 in the set DistSys-10f-2.pdf. It contains a chart of 24 different RPC systems. Pick 3 of them (not HTTP) and do some background research:

a) Is the RPC still "alive" today: when was the latest version release? If the system is dead, what happened / changed?

b) What are the requirements of using the system: OS, environment, other?

c) How is the system licensed: open / partial / proprietary = closed?

d) Would you choose the RPC for use in a new software project?

3. SSH RPC

Your task is to approximate RPC function calls using the SSH protocol. This task is also an intro to cluster- and cloud-level computation management.

As a pre-requisite, you will need to use Public Key Infrastructure (PKI) for SSH logins without a password. Source materials for PKI:

  • "man ssh-keygen" in the dept's Linux environment
  • you will need one private & public key for the client
  • you will need to copy the public key into each node selected in phase #1 below

Use nodes from the Ukko cluster for experimentation. Take care not to use nodes reserved for research projects. http://www.cs.helsinki.fi/en/compfac/high-performance-cluster-ukko

Your task is to build a shell or Ruby/Perl/Python script that does the following:

1. Accept as input n node names in the form of a directory structure

./
./ukko001
[...]
./ukko240

You can select which nodes to use. The minimum requirement is five nodes.

2. Accept as command input n commands as text files

./ukko001/INPUT
[...]
./ukko150/INPUT

The specific node names will vary with the node names chosen in #1.

The input commands COULD be the same, but if you implement the task properly, this will not matter.

3. Run the given commands on each Ukko node concurrently (hint: call the SSH connection using &)

4. Record the output from each node into a corresponding text file

./ukko001/OUTPUT
[...]
./ukko150/OUTPUT

The output contents will almost certainly be different for each node, depending on which commands you chose to execute.