Distributed Systems : Exercise 2
1. Transparency types
Sources
- Section 1.2.2 Transparency, T&vS 1st Ed.
- 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.