A sliding window based Self-Learning and Adaptive Load Balancer
A load balancer distributes load among individual resources to minimize the response time, maximize the throughput and efficiently utilize the resources. Static load balancers distribute requests based on pre-known server capability ratios. Dynamic load balancers either observe or collect the performance indicating attributes of the servers, and distribute the load based on the analysis performed on the observed or collected data. The observation based load balancers use the quickest response time and the least number of connections to select a server to process an arrived request. Both the static load balancing and observation based models do not produce optimal throughput when the server capabilities change over time. This paper introduces a Sliding window based Self-learning and Adaptive Load Balancer (SSAL) that optimizes throughput in both the stable and unstable server environments. The SSAL logically divides time into fixed size intervals, assigns the requests in batches and makes corrections based on the performance of the servers observed in each interval. The SSAL (i) discovers the initial capabilities of the servers and perform incremental corrections needed in the subsequent intervals, (ii) produces throughput, better than the static load balancing model in stable environments, and (iii) produces throughput better than the quickest response time and least connections based models in unsteady environments. Experiments are conducted to compare the performance of the SSAL to other models under various stable and unstable server environments. The experimental results confirm that the SSAL produces optimal throughput in both stable and unstable environments, and the turnaround time similar to or better than that of the observation based models. The proposed model is useful where the capabilities of the servers change over time and the optimal throughput is required.
dynamic load balancing scheduling distributed systems cluster computing