mp1-sp11 - ECE428/CS425/CSE424: Distributed Systems Spring...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Distributed Failure Detection with Load Balancing As part of this programming assignment, you will be designing a fault tolerant distributed file system. The system comprises of a set of servers. The servers are prone to failures and therefore, each file is replicated on two servers for fault tolerance. We assume that only a single failure can happen in our system. The clients send requests for a file (read requests only) to the file system agnostic of the actual server where the file is stored. When a server fails, the files stored in the failed server have to be replicated in another non-faulty server. Additionally, the system maintains a load balancer whose job is to distribute file request load from the clients evenly amongst the servers. For the sake of this programming assignment, you may assume that the load balancer is a centralized agent, but the failure detection should still be distributed. Architecture The figure below shows an illustration of the intended system. The illustration shows a server pool consisting of 4 servers (S1 through S4), each of which stores some of the files f1 through f4. The servers communicate with a load balancer, which in turn acts as a gateway for client C1’s requests. Constraints 1) The failure detection should be fully decentralized and should not depend on the load balancer. 2) The load balancer by itself will not know which server has failed; a non-faulty server should communicate this to the load balancer. 3) A server failure should be detected within 10 seconds of its failure. 4) Please use either C or C++ to program. Specification You are to use the UIUC College of Engineering EWS workstations, named linux.ews.illinois.edu. Information about the workstations is available on the homepage http://www.ews.uiuc.edu Make a directory called MP1 somewhere inside your main directory and store all your files in this directory. Use only C or C++ for developing the system. You are provided with a Perl script named create_file_map.pl, which can be accessed from ~ece428 folder on the EWS machines . The script takes in, as a command line argument (integer), the number of servers and files that you intend to create. Type the following inside your MP1 directory to execute the script: ~ece428/create_file_map.pl <number of servers> <number of files> ECE428/CS425/CSE424: Distributed Systems Spring 2011 Programming assignment 1 Due: by 5:00p.m. on March 1, 2011 S1 S2 S3 S4 Load Balancer Server pool C1 f1, f2 f1, f3, f4 f2, f3 f1, f4 f1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This script first creates a set of directories inside your MP1 folder. The number of directories created will be same as the number of servers you passed in the command line. The directories simulate the file system on each of the servers. For instance, files that are intended to be stored in server with id 1 are placed in the directory named
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 4

mp1-sp11 - ECE428/CS425/CSE424: Distributed Systems Spring...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online