Due: Thursday, April 16
Reading: Chapter 9 and 10 of Programming Erlang
For this assignment, you have two different paths you may go down.
If you are still interested in learning Erlang, you can follow the
steps described here. Over the rest of the semester, you will then
have two more assignments of similar scope.
On the other hand, if you've seen enough of Erlang and want to branch
out on your own, you are more than welcome to define your own project.
This project can be in any programming language or environment. Possible options would be to
modify the Hadoop environment in some way (e.g., to schedule between
multiple users or to can handle input sets that do not partition well
across reducers as described here: setup
and design)
or to write a new application. You can work in project groups of one,
two, or three students. If you choose this path, you will need to write up a report describing
what you did and what you found. You should meet with me by April
16th to let me know what you are planning.
Overview of Distributed Erlang Assignment
For this assignment, you will extend the concurrent program from
assignment 5 so that it re-starts faulty servers and distributes the
servers across different physical machines.
First, add error handling. If one of the 3 servers dies, you
should detect this and start that server over again. To make it more
interesting/challenging, you should also re-start a server if it ever
returns a faulty (i.e., disagreeing) answer.
For demonstration/testing purposes, each server should have some
fixed probability of crashing or returning a faulty answer.
Second, you should distribute the 3 servers and the clients to
different machines (4 total machines). Machines in
the instructional clusters should be fine.
Turning in your assignment
Please copy your code to the directory
~cs739-1/Spring09/handin/[login]/P5 where [login] is
your CS login name.
Again, comment your code enough that someone can follow what you did.
We won't grade you on elegance, or simplicity, or creativity, or
anything other than functionality and comments. If different students
come up with wildly different solutions, we'll try to share some of the
different approaches.
You are welcome to look at other students' code for P4. You should be
able to read them now.