Weighted Round Robin Scheduling Program
- or -
Post a project like this2229
$$
- Posted:
- Proposals: 2
- Remote
- #1923477
- Awarded
Description
Experience Level: Intermediate
Here, your weighted round robin algorithm will be running on the load balancing machine (i.e. the load balancing program will be working on a single machine) while a number of client programs will be running on each of the nodes (separate machines). Your system will need to at least consider the following functionality and messaging (in no particular order):
1. Weighted round-robin algorithm working on a designated load balancer machine.
2. Each node will register with the load balancer by sending a message.
3. The load balancer will record node details
4. Jobs (as a message) require the load balancer to assign the job to the next free node. The job information will detail the number of seconds that a job will take to run, rather than trying to include some form of code that is required to be executed.
5. The load balancer will need to store an ordered list of nodes. The weighted round-robin, the list should be ordered based on the nodes workload (i.e. the number of jobs given to them already by the load balancer). The least weighted node (i.e. the one that has the least amount of work) will be at the top.
6. Weighted information to determine the order of the scheduled jobs can be gained by remembering how many jobs are currently on a node.
7. The load balancer assigns the job to a node by sending it a message to work for X seconds. Nodes will receive job requests and wait for the required time. Once a job has finished on a node, a message will be sent back.
There should be separate programs for:
1. The load balancer
2. General worker node. Do not hard code names or IP address into this but instead have these passed in as parameters on the command line.
3. A program for sending jobs into the system.
Dos and Don’ts:
Dos:
1. Do have three separate programs
2. Do make use of multiple classes in each program
3. Ensure that the relevant functionality for the class is contained within it
4. Link classes together to form the overall algorithm
5. Use multi- threading where necessary
6. Send, receive and process messages
7. Only use the main method for extracting information from the arguments passed in from the command line and to start your system
Don’t:
1. Don’t provide a monolithic solution (e.g. all the code in one class or main method)
1. Weighted round-robin algorithm working on a designated load balancer machine.
2. Each node will register with the load balancer by sending a message.
3. The load balancer will record node details
4. Jobs (as a message) require the load balancer to assign the job to the next free node. The job information will detail the number of seconds that a job will take to run, rather than trying to include some form of code that is required to be executed.
5. The load balancer will need to store an ordered list of nodes. The weighted round-robin, the list should be ordered based on the nodes workload (i.e. the number of jobs given to them already by the load balancer). The least weighted node (i.e. the one that has the least amount of work) will be at the top.
6. Weighted information to determine the order of the scheduled jobs can be gained by remembering how many jobs are currently on a node.
7. The load balancer assigns the job to a node by sending it a message to work for X seconds. Nodes will receive job requests and wait for the required time. Once a job has finished on a node, a message will be sent back.
There should be separate programs for:
1. The load balancer
2. General worker node. Do not hard code names or IP address into this but instead have these passed in as parameters on the command line.
3. A program for sending jobs into the system.
Dos and Don’ts:
Dos:
1. Do have three separate programs
2. Do make use of multiple classes in each program
3. Ensure that the relevant functionality for the class is contained within it
4. Link classes together to form the overall algorithm
5. Use multi- threading where necessary
6. Send, receive and process messages
7. Only use the main method for extracting information from the arguments passed in from the command line and to start your system
Don’t:
1. Don’t provide a monolithic solution (e.g. all the code in one class or main method)
Mark H.
0% (0)Projects Completed
1
Freelancers worked with
1
Projects awarded
100%
Last project
20 Apr 2018
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies