Review
Load-balancing algorithms in cloud computing: A survey

https://doi.org/10.1016/j.jnca.2017.04.007Get rights and content

Abstract

Cloud computing is a modern paradigm to provide services through the Internet. Load balancing is a key aspect of cloud computing and avoids the situation in which some nodes become overloaded while the others are idle or have little work to do. Load balancing can improve the Quality of Service (QoS) metrics, including response time, cost, throughput, performance and resource utilization.

In this paper, we study the literature on the task scheduling and load-balancing algorithms and present a new classification of such algorithms, for example, Hadoop MapReduce load balancing category, Natural Phenomena-based load balancing category, Agent-based load balancing category, General load balancing category, application-oriented category, network-aware category, and workflow specific category. Furthermore, we provide a review in each of these seven categories. Also. We provide insights into the identification of open issues and guidelines for future research.

Introduction

Cloud computing is a modern technology in the computer field to provide services to clients at any time. In a cloud computing system, resources are distributed all around the world for faster servicing to clients (Apostu et al., 2013, Dasgupta et al., 2013). The clients can easily access information via various devices such as laptops, cell phones, PDAs, and tablets. Cloud computing has faced many challenges, including security, efficient load balancing, resource scheduling, scaling, QoS management, data center energy consumption, data lock-in and service availability, and performance monitoring (Kaur et al., 2014; Malladi et al., 2015). Load balancing is one of the main challenges and concerns in cloud environments;(Jadeja and Modi, 2012) it is the process of assigning and reassigning the load among available resources in order to maximize throughput, while minimizing the cost and response time, improving performance and resource utilization as well as energy saving (Singh et al., 2016; Goyal et al., 2016). Service Level Agreement (SLA) and user satisfaction could be provided by excellent load balancing techniques. Therefore, providing the efficient load-balancing algorithms and mechanisms is a key to the success of cloud computing environments. Several researches have been done in the field of load balancing and task scheduling in cloud environments. However, our studies showed that despite the key role of load-balancing algorithms in cloud computing, especially in the advent of big data, there are a few comprehensive reviews of these algorithms. First, we mention a few recent papers that have reviewed the load-balancing algorithms and mechanisms in cloud environments:

  • Milani and Navimipour (2016) have presented a systematic review of the existing load balancing techniques. They classified the existing techniques based on different parameters. The authors compared some popular load-balancing algorithms and presented their main properties, including their advantages and disadvantages. They also addressed the challenges of these algorithms and mentioned the open issues. However, their work lacks a discussion regarding the load balancing and task scheduling techniques in Hadoop MapReduce that is an issue nowadays.

  • Mesbahi and Rahmani (2016) have studied state of the art load balancing techniques and the necessary requirements and considerations for designing and implementing suitable load-balancing algorithms for cloud environments. They presented a new classification of load balancing techniques, evaluated them based on suitable metrics and discussed their pros and cons. They also found that the recent load balancing techniques are focusing on energy saving. However, their work suffers from the lack of simulating the load balancing techniques by simulator tools; in addition, a discussion of open issues and future topics that researchers should focus on is also missing.

  • Kanakala and Reddy, 2015a, Kanakala and Reddy, 2015b have analyzed the performance of load balancing techniques in cloud computing environments. They studied several popular load-balancing algorithms and compared them based on metrics such as throughput, speed, complexity, etc. They concluded that none of the reviewed algorithms were able to perform well in all the required areas of load balancing. However, they did not mention the current trend, future works, and open issues in the field of load balancing in cloud environments.

  • Ivanisenko and Radivilova (2015) have studied major load-balancing algorithms in distributed systems. They classified the most used load-balancing algorithms in distributed systems, including cloud technology, cluster systems, and grid systems. They also presented a comparative analysis of different load-balancing algorithms on various efficiency indicators such as throughput, migration time, response time, etc. In their work, a description of the main features of load-balancing algorithms, analysis of their advantages, and defaults of each type of algorithms is also presented. Nevertheless, a discussion of challenges, open issues, and future trends is similarly missing.

  • Farrag and Mahmoud (2015) have reviewed intelligent cloud algorithms for load balancing problems, including Genetic Algorithms (GA), Ant Colony Optimization (ACO), Artificial Bee Colony (ABC) and Particle Swarm Optimization (PSO). They also proposed an implementation of Ant Lion Optimizer (ALO) based cloud computing environment as an efficient algorithm, which was expected to supply the outcomes in load balancing. The authors found that these algorithms showed a better performance than traditional ones in terms of QoS, response time, and makespan. However, they did not evaluate their proposed algorithm in different scales of cloud systems by comparing its results.

To help the future researchers in the field of load balancing in designing novel algorithms and mechanisms, we surveyed the literature and analyzed state of the art mechanisms. Therefore, the purpose of this paper is to survey the existing techniques, describe their properties, and clarify their pros and cons. The main goals of this paper are as follows:

  • Studying the existing load balancing mechanisms

  • Providing a new classification of load balancing mechanisms

  • Clarifying the advantages and disadvantage of the load-balancing algorithms in each class

  • Outlining the key areas where new researches could be done to improve the load-balancing algorithms

The rest of the paper is organized as follows. Section 2 provides a literature review for the model, metrics, policies, and taxonomy of load-balancing algorithms. Challenges in cloud-based load-balancing algorithms are explained in Section 3. Section 4 provides a relatively comprehensive review of literature on the existing load balancing techniques and presents a new classification. Section 5 provides a discussion of the mentioned techniques and some useful statistics. Open issues are outlined in Section 6. Finally, in Section 7, we conclude our survey and provide future topics.

Section snippets

The load balancing model, metrics, and policies in literature

The model of load balancing is shown in Fig. 1 (Gupta et al., 2014), where we can see the load balancer receives users’ requests and runs load-balancing algorithms to distribute the requests among the Virtual Machines (VMs). The load balancer decides which VM should be assigned to the next request. The data center controller is in charge of task management. Tasks are submitted to the load balancer, which performs load-balancing algorithm to assign tasks to a suitable VM. VM manager is in charge

Challenges in cloud-based load balancing

Review of the literature shows that load balancing in cloud computing has faced some challenges. Although the topic of load balancing has been broadly studied, based on the load balancing metrics, the current situation is far from an ideal one. In this section, we review the challenges in load balancing with the aim of designing typical load balancing strategies in the future. Some studies have mentioned challenges for the cloud-based load balancing (Palta and Jeet, 2014; Nuaimi et al., 2012;

Survey on existing load balancing mechanisms

In this section, we survey the literature on the existing mechanisms for load balancing in cloud environments. For this purpose, we studied a number of journals and conference proceedings to present a new classification of them. We have classified the existing mechanisms into seven categories:

  • Hadoop MapReduce load balancing category (HMR-category in this paper)

  • Natural Phenomena-based load balancing category (NPH-based in this paper)

  • Agent-based load balancing category (Agent-based in this paper)

Discussion and statistics

In this section, we provide some statistics based on the studied articles. Fig. 4 shows the distribution of the reviewed articles by the year of publication from 2008 until February 2017. In the Figure we see the number of articles in each year on the corresponding slice; for example, the number of studied articles in 2015 is 29 that is the highest. The percentage of studied articles in each year is shown in the Figure too. Moreover, the number of articles in 2016 is noteworthy. Fig. 4 shows

Open issues and future trends

In this section, we offer major load balancing techniques issues that have not been comprehensively and completely addressed. In our literature review, we found that there is not a perfect technique for improving the entire load balancing metrics. For example, some techniques considered response time, resource utilization, and migration time, while the others ignored these metrics and considered other metrics. However, it seems that some metrics are mutually exclusive. For example, relying on

Conclusion and future works

Balancing of the workload among cloud nodes is one of the most important challenges that cloud environments are facing today. In this paper, we surveyed research literature in the load balancing area, which is the key aspect of cloud computing. We found in the literature, several metrics for load balancing techniques that should be considered in future load balancing mechanisms. Based on our observations, we have presented a new classification of load balancing techniques: (1) Hadoop MapReduce

References (108)

  • A.M. Alakeel

    A guide to dynamic load balancing in distributed computer systems

    Int. J. Comput. Sci. Netw. Secur.

    (2010)
  • A. Apostu et al.

    Study on advantages and disadvantages of cloud computing – the advantages of telemetry applications in the cloud

    Recent Adv. Appl. Comput. Sci. Digit. Serv.

    (2013)
  • L.D.D. Babu et al.

    Honey bee behavior inspired load balancing of tasks in cloud computing environments

    Appl. Soft Comput.

    (2013)
  • P. Bellavista et al.

    GAMESH: a grid architecture for scalable monitoring and enhanced dependable job scheduling

    Future Gener. Comput. Syst.

    (2016)
  • J.V.B. Benifa et al.

    Performance improvement of MapReduce for heterogeneous clusters based on efficient locality and Replica aware scheduling (ELRAS) strategy

    Wirel. Personal. Commun.

    (2017)
  • Bhatia, J., Patel, T., Trivedi, H., Majmudar, V., 2012. HTV Dynamic Load-balancing algorithm for Virtual Machine...
  • K. Bok et al.

    An efficient MapReduce scheduling scheme for processing large multimedia data

    Multimed. Tools Appl.

    (2016)
  • R. Chethana et al.

    Survey on adaptive task assignment in heterogeneous Hadoop cluster

    IEAE Int. J. Eng.

    (2016)
  • Chien, N.K., Son, N.H., HD, 2016. Load-balancing algorithm Based on Estimating Finish Time of Services in Cloud...
  • Cinque, M., Corradi, A., Luca Foschini,L., Frattini, F., Mol, J.P., 2016. Scalable Monitoring and Dependable Job...
  • M.K. Dagli et al.

    Big data and Hadoop: a review

    Int. J. Appl. Res. Eng. Sci.

    (2014)
  • Dasgupta, K., Mandalb, B., Duttac, P., Mondald, J.K., Dame, S., 2013. A Genetic Algorithm (GA) based Load-balancing...
  • Destanoğlu, O., Sevilgen, F.E., 2008. Randomized Hydrodynamic Load Balancing Approach, IEEE International Conference on...
  • Deye, M.M., Slimani, Y., sene, M., 2013. Load Balancing approach for QoS management of multi-instance applications in...
  • Domanal, S.G., Reddy, G.R.M., 2015. Load Balancing in Cloud Environment using a Novel Hybrid Scheduling Algorithm. IEEE...
  • C. Doulkeridis et al.

    A survey of large-scale analytical query processing in MapReduce

    VLDB J.

    (2013)
  • M.B. Dsouza

    A survey of Hadoop MapReduce scheduling algorithms

    Int. J. Innov. Res. Comput. Commun. Eng.

    (2015)
  • Fadika, Z., Dede, E., Govidaraju, M., 2011. Benchmarking MapReduce Implementations for Application Usage Scenarios. In:...
  • Farrag, A.A.S., Mahmoud, S.A., 2015. Intelligent Cloud Algorithms for Load Balancing problems: A Survey. IEEE In:...
  • Gautam, J.V., Prajapati, H.B., Dabhi, V.K., Chaudhary, S., 2015. A Survey on Job Scheduling Algorithms in Big Data...
  • Ghoneem, M., Kulkarni, L., 2016. An Adaptive MapReduce Scheduler for Scalable Heterogeneous Systems. Proceeding of the...
  • Ghosh, S., Banerjee, C., 2016. Priority Based Modified Throttled Algorithm in Cloud Computing. International Conference...
  • S. Goyal et al.

    Load balancing techniques in cloud computing environment: a review

    Int. J. Adv. Res. Comput. Sci. Softw. Eng.

    (2016)
  • H. Gupta et al.

    Honey bee behavior based load balancing of tasks in cloud computing

    Int. J. Sci. Res.

    (2014)
  • J.O. Gutierrez-Garcia et al.

    Agent-based load balancing in Cloud data centers

    Clust. Comput.

    (2015)
  • H.A. Hefny et al.

    Comparative study load balance algorithms for MapReduce environment

    Int. Appl. Inf. Syst.

    (2014)
  • Hou, X., Kumar, A., Varadharajan, V., 2014. Dynamic Workload Balancing for Hadoop MapReduce. Proceeding of...
  • S.C. Hsueh et al.

    A load-balanced MapReduce algorithm for blocking-based entity-resolution with multiple keys

    Parallel Distrib. Comput.(AusPDC)

    (2014)
  • Hwang, K., Dongarra, J., Fox, G.C., 2013. Distributed and Cloud Computing: from Parallel Processing to the Internet of...
  • Ivanisenko, I.N., Radivilova, T.A., 2015. Survey of Major Load-balancing algorithms in Distributed System. Information...
  • Jadeja, Y., Modi, K., 2012. Cloud Computing - Concepts, Architecture and Challenges. International Conference on...
  • Jaikar, A., Dada, H., Kim, G.R., Noh, S.Y., 2014. Priority-based Virtual Machine Load Balancing in a Scientific...
  • M.S. Kabir et al.

    Process of load balancing in cloud computing using genetic algorithm

    Electr. Comput. Eng.: Int. J.

    (2015)
  • V.R.T. Kanakala et al.

    Performance analysis of load balancing techniques in cloud computing environment

    TELKOMNIKA Indones. J. Electr. Eng.

    (2015)
  • V.R.T. Kanakala et al.

    Performance analysis of load balancing techniques in cloud computing environment

    TELKOMNIKA Indones. J. Electr. Eng.

    (2015)
  • N.J. Kansal et al.

    Cloud load balancing techniques: a step towards green computing

    Int. J. Comput. Sci. Issues

    (2012)
  • Kaur, R., Luthra, P., 2014. Load Balancing in Cloud Computing, International Conference on Recent Trends in...
  • Kc, K., Anyanwu, K., 2010. Scheduling Hadoop Jobs to Meet Deadlines. In: Proceedings of the 2nd IEEE International...
  • S. Keshvadi et al.

    A multi-agent based load balancing system in IaaS cloud environment

    Int. Robot. Autom. J.

    (2016)
  • S. Khalil et al.

    Mapreduce performance in heterogeneous environments: a review

    Int. J. Sci. Eng. Res.

    (2013)
  • Cited by (308)

    View all citing articles on Scopus
    View full text