Question: I. Assessment Requirements : You will work individually on this assessment to write a design report detailing how load balancing and coordination can be applied
I. Assessment Requirements :
You will work individually on this assessment to write a design report detailing how load balancing and coordination can be applied to multiple machines. The second part of this assessment will also require you to work on your own to implement the system.
II. Assessment Scenario/Problem When considering how computer system is comprised, the importance of an operating system is of vital for it to operate. However, when dealing with a distributed system, the same issues that we encounter in an operating system can also apply, but to a greater degree. To help prepare you to design your system you will need to read the module text book (Tanenbaum) regarding how the process scheduler works within the operating system. Specifically, read information and gain understanding of how the roundrobin and weighted round-robin algorithms work and how this could be applied to solve a distributed computing problem. The weighted round-robin approach will require you to read new material as this is not covered in term 1 (only in term 2). However, surgeries during term 1 will introduce you to the idea to help you get started. For this assignment, you will be required to design a distributed computing system which either uses round-robin and weighted round-robin as a means of distributing workload between a number of computing systems. Here, a single machine will act as the coordinator (load balancer) which is distributing work to a number of worker machines (nodes). A number of worker machines will be used and will have jobs running on them (i.e. nodes which are other computers connected together via a network). In the following figure, an example distributed system comprising of a coordinator (load balancer) and several worker nodes is shown. These will be connected together via a network:
In the above figure, the load balancer will implement some form of distributing algorithm (from now on, this will be referred to as a load-balancing algorithm) Load balancer Node 1 Node 2 Node 3 User sends a job request Edited with the trial version of Foxit Advanced PDF Editor To remove this notice, visit: www.foxitsoftware.com/shopping 5 which will receive job notification requests from multiple users. The load-balancing algorithm will be based on either a round-robin or weighted round-robin approach. For this assignment, you will have to consider using a round-robin or weighted round-robin algorithm to coordinate and forward on message requests to instruct nodes on what to do. With a distributed system which runs on a number of separate machines, messages are sent over the network so that all of the systems can communicate. In this scenario, messages will contain details about the job the user is requesting to be run. Job messages will contain information about what job needs to be run and duration and will be used to let different parts of the system to tell others (i.e. nodes) what to do. On receiving a job request, the load-balancer will re-route the request on to a free node (or one which has the most available resources if you go down the weighted round-robin route). At that point, the worker node will simply wait for the job duration time (in other words it will simulate that work is being done). Another consideration is that worker nodes could handle more than one job request, so this needs to be considered in your design and implementation. As this is implementing a messaging system (where messages are passed from one part of the system to another), you will need to consider what messages will be needed to make sure that the overall system is fully functional.
Surgeries will be used to better help you understand the assessment requirements. You will be told which surgery this will take place in beforehand. You will be given a choice in Assessment 2 of which strategy you will implement (different maximum marks will be allocated see later in this document). However, for this coursework you will write a report which details how your system will work (i.e. the design). You will need to consider the following within your design:
1. Separate sections regarding both load-balancing approaches (round-robin or weighted round-robin) and provide a flowchart on how the algorithm works along with a detailed discussion. The more information you provide, the easier it might be when it comes to implementing the system. You would need sections to discuss both (more details later).
2. There will be messages being passed around the distributed system. You will need to consider what control messages and the information they contain to enable components to control and respond to requests. An example would be a registration message initially being sent to the load-balancer when each node starts. This would be used to store on the load-balancer what nodes there are, where they are located (IP address), port, and what to do (in this case, registration). There will be more messages required to enable the system to function correctly.
3. The load balancer will need to store an ordered list of nodes. Depending on which method you choose: For round-robin: jobs will require the load-balancer to assign the job to the next free node. The job information will detail the number of seconds that a Edited with the trial version of Foxit Advanced PDF Editor To remove this notice, visit: www.foxitsoftware.com/shopping 6 job will take to run, rather than trying to include some form of code that is hard coded with node or work-related information. For weighted round-robin: here, the list of available nodes would be ordered (i.e. giving a priority). This could 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 and sent a message to perform some work. This would require knowing the maximum amount of work that a node can do at any one time. 4. 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. For the design document, you will need to investigate how the round-robin scheduling method works. Once that has been understood, investigate how the weighted round-robin scheduling strategy works. Please make sure that you look into distributed systems when coming up with your ideas and algorithms behind the load balancer. Make sure that you do not rely on any literature that does this at the network level (or in switches/routers). When designing your algorithms, you must consider the distributed systems nature of the problem. This means that you should not be considering or using terminology regarding time slices, time quantums, processes, process manager, etc. You will need to provide separate flowcharts and descriptions of the algorithms to enable both of these strategies. Your document should include at least:
1. A section describing and explaining what distributed computing is and how load balancing is important for large scale systems.
2. A section on the algorithm (in flowchart form) detailing the steps / stages of the round-robin strategy. This might require more than one flowchart as there are multiple systems working together (i.e. load balancer and node(s)). You will need to ensure that enough detailed information is provided within your diagram(s) as you could be implementing this in assessment 2. 3. A section which describes your round-robin algorithm, highlighting key aspects & features/functionality and how it works over multiple machines. This can be linked to the section in #2 if you wish. 4. A section on the algorithm (in flowchart form) detailing the steps / stages of the weighted round-robin strategy. You will need to ensure that enough detailed information is provided within your diagram as you could be implementing this in assessment 2. This might require more than one flowchart as there are multiple systems working together (i.e. load balancer and node(s)). 5. A section which describes your weighted-round robin algorithm, highlighting key aspects & features/functionality and how it works over multiple machines. This can be linked to the section in #4 if you wish. 6. A section which defines the structure and purpose of the messages used within your designed system and how they are used to coordinate the system. 7. A section describing what metrics you need to think about to order the jobs Edited with the trial version of Foxit Advanced PDF Editor To remove this notice, visit: www.foxitsoftware.com/shopping 7 in a weighted-round robin system (this will be detailed in flowchart form in #4). 8. Any other details that you feel are relevant. You will be given the choice in assessment 2 on deciding which algorithm you will implement. If you choose to implement the round-robin approach you the maximum mark will be capped at 70%. If you implement a weighted round-robin approach the maximum mark will not be capped. More details will be provided in the Assessment 2 specification. For assignment two, you will use Java to implement your system. Report submission details. The report must be at least 8 pages and no more than 14 pages maximum in length (the font to be used is verdana, 11 point) and single spaced. If you include either a front cover sheet, list of tables, or reference / bibliography pages these will not count towards the size of the report. Any images, text or material must be fully referenced. Please consult the student handbook for more details regarding how to cite and quote correctly. Alternatively, consult the online library resources on citing work.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
