DYNAMIC LOAD BALANCING OF FINE-GRAIN SERVICES USING PREDICTION BASED ON SERVICE INPUT-free thesis
Distributed computing systems are becoming a widely used paradigm for achieving high availability, scalability and performance. Such systems are usually formed as a group of nodes providing the same set of services. The cluster of servers operates transparently to clients and incoming requests are distributed among the nodes using a load-balancing algorithm. Nowadays, many applications are based on popular distributed object approaches such as CORBA, DCOM or Java EJB technologies. Load balancing algorithms based on simple scheduling policies, specifically RoundRobin (RR) or Random scheduling, are widely used in practice, for example in current application servers [1, 2]. Such location policies can lead to a situation where some hosts are overloaded while the others lightly loaded or idle. In order to remove the unbalance, improve the utilization of resources in the cluster and increase the performance, specifically the client response time, a more effective load balancing algorithm is needed to distribute workload among the nodes. Fine-grain services can be imprecisely defined as tasks with a low complexity and short execution times. For example, in a distributed object computing systems, a finegrain service would be a call to an object method with the maximum execution time in order of seconds. This introduces several challenging issues. The system is very sensitive to any additional overhead; and therefore, the load balancing decision must be done quickly. The workload on the servers and the utilization of the whole cluster fluctuates rapidly due to short execution times of the services. Finally, the set of services may change on fly since new services may be deployed or the existing ones may be changed or removed from the system.