{'fraction_non_alphanumeric': 0.022233688259299215, 'fraction_numerical': 0.00239223228106384, 'mean_word_length': 4.863586358635864, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Comparative Study on Load Balancing Techniques

-Cloud Computing is proving as an emerging research area in the arena of information technology (IT). The three main services offered by the cloud are IaaS, SaaS, and PaaS. Internet-based technology that emphasizes its use and follows a lead model. The most serious problem in computer computing balances the load across the network. This is how, the heavy load is evenly distributed over the network areas so that no single node is overcrowded. The main purpose of neutralizing the load is to make better use of resources that improve system efficiency and reduce resource utilization that reduces carbon emissions. The content of the paper emphasizes mainly the idea of several load balancing methods used in cloud computing. This paper contributes to the analysis of the problems of the existing loading algorithm and provides comparisons between these algorithms on the basis of various quality metrics such as reliability, performance, energy-saving feature, rating, and more.

technology that accentuates commercial computing. It's a unique platform that offers dynamic pool resources and virtualization. It also permits the scalability of available IT resources such as services, applications, and infrastructure. These resources are available on a cost basis [1]. With the increase in a number of users on the cloud, the existing resources decrease automatically which generates the problem of delay between the users and the cloud service providers. Hence, the load balancing comes into the picture. The traffic over the network must be distributed smartly so as to neutralize the load between the overloaded and under-loaded nodes over the network.To accomplish this task, several load balancing algorithms are proposed with the passage of time by researchers, with their own pros and cons. Cloud computing facilitates, the grant and removal of resources at a rapid rate involving veryfewer interference by the service provider. The primefeature of cloud computing focuses in resource allocation and scheduling (RAS) which can be accomplished by means of the algorithms and policies in existence. [2].
There are tremendous issues while trading with load balancing in a cloud computing environment. Every single load balancing algorithm is designed so as to achieve the desired results. Some algorithm's objectiveis achieving maximum throughput, while the rest aims at achieving less response time. Some other aim to achieve highest resource utilization while rest aims at achieving a trade-off between all these considered metrics. [3]. Load Balancing supports the distribution of dynamic local workload equally across all the nodes in the whole cloud. It will also avoid the situation where some nodes are heavily loaded while others are idle or doing slight effort. Load balancing intensifies the overall performance of the system along with its efficient resource utilization strategy. In turn the working principle of load balancing helps to achieve high user satisfaction. In this paper, an overall review of the current load balancing algorithms in the Cloud Computing environment is presented. The analysis of each algorithm is done and finally summarized as an overview.

SECURITY RISKS
There are several risks to be found in this area, but we will only discuss the most relevant and important ones.

Attacks
The web in general is haunted by attacks on XML signatures. XML is a web based language and as cloud computing could also be web based, they are exposed to this problem. These forms of hack are usually used to obtain data without having the rights to access them. [39]

Non attack risks
First there is the Lock in effect. This means that, in this scenario, an organization cannot move its IT around to different service providers (Arthur, 1989) [37]. Cloud computing is fairly new so there are not yet many standardized formats. Also a cloud provider could try to make it difficult for a client to move away to another source. This means that the client will be "locked in" to that particular provider. [39]

WHY WE NEED LOAD BALANCING IN CLOUD?
Load Balancing serves as a base for providing efficiency and elasticity to the entire cloud model by managing its resources. The systems without load balancing also cause an issue as users could face delays, and provide timeconsuming system responses [11]. The factors such as the dynamic nature of user tasks, the unpredictable and probabilistic traffic flow to a cloud provider, lack of robustness, an uneven or non-uniform distribution of tasks across computing resources contribute to the situation of unbalanced load over the cloud. Under these circumstances there arises a need for load balancing [3]. Thus, load balancing is a promising solution for the unbalanced traffic problem that arises due to such circumstances. Without load balancers, newly spun virtual servers wouldn't be able to receive the incoming traffic in a coordinated fashion. Some virtual servers might even be left handling zero traffic while others became overloaded [12]. Also, without load balancing, operational capability and efficiency levels of the entire system can be degraded highly [13]. Thus, it needs to be implemented in the cloud for delivering high efficiency. Despite the availability of several load balancing techniques the issue of distributing load is taken seriously due to the problem of elasticity involved in it. Different organizations offer a different number of resources for the purpose of provisioning. This number of resources involved may vary from company to company based on the requirement and their marketing strategies. The load balancer is responsible for optimizing the response rate for a particular request as it selects a single server that can process the request faster with greater efficiency profits among all the available servers [15]. Fig-1 clarifies that how load balancing isdone I in the cloud computing environment.

GOALS OF LOAD BALANCING
The key goal of Load balancing focuses ondeliveringunceasingsupport in the situation of failing a service component by provisioning and de-provisioning the instances of the executing application. Secondly, it accelerates the efficientconsumption of the available resources. Additionally, load balancing emphasiseson minimizing the response time for processes and upgrade resource utilization, resulting inthe enhancement of system performance at a lower cost. It also goals to provide flexibility, along with scalability for the dynamic applications, which are expected to have size variation in future and may arise the need for more resources. Another goal of Load balancing includes, providing priority to tasks that require instant execution in contrast with the other jobs followed by minimizing energy consumption, carbon emission, resource provisioning, avoiding bottlenecks, and fulfilling QoS requirements for the improvement of the efficiency of the cloud environment [36].
The process of load balancing aims to achieve the following goals [37]: • Enhancing the performance of the entire network.

•
Processing alternative methods in case of system failure • Maintaining the stability of the system • Making the network flexible enough to adapt to certain changes required in future • Providing priority to jobs that need instant execution.

ISSUES EFFECTING LOAD BALANCING IN CLOUD COMPUTING
There are several issues that comes under consideration while dealing with load balancing in a cloud computing environment. Each load balancing algorithm is designed to attain the desired goal. The various proposed algorithms aim at achieving higher throughput, minimizing the response time, maximizing the resource utilization, while the rest focuses at achieving a trade-off between all these metrics. Hence load balancing is one of the important factors to intensify the working performance of the cloud service provider. Figure 2,presents a detailed framework of working of various load balancing algorithms in a cloud computing environment.

Fig-2 (Load Balancing Algorithm execution)
Some major issues which must be considered while designing any load balancing algorithm are discussed below:

Geographical Distribution of Nodes
The allocation of web huddleabove the Internet has been completed with insertion content nodes in tactical positions. The geographically allocation structural design wherein, Domain Name System (DNS) servers assess network closenessalong with users have been served from the neighboringhuddledecrease network impact on reaction time. Therefore, the geographical allocation of nodes matter a lot in the generallyroutine of any real-time cloud computing system, especially in case of the large-scaled applications like Instagram, Twitter, Facebook, etc. A well-distributed system of nodes in a cloud environment is helpful in handling fault tolerance and sustaining the efficiency of the system. [5]

Dynamic Vs Static behavior of algorithms
Static and dynamic behavior are the most vital factors of designing an algorithm. The static algorithms do not depend upon the existingsituation of the system, but it has the prior knowledge regarding system resources and exhibits details of all tasks to be performed in an application. This category of algorithms faces themainproblemwhen a condition of abrupt failure of system resources and tasks. While at the other end, the active algorithms are capable of making the decisions regarding load balancing based upon the current situation of the system. It has not been requiredcontaining previousawareness about the system. This approach proves an advancement over the static approach. The algorithms in this category are considered a bit complex, as they analyze the present requirement of the system. This feature results in better fault tolerance and overall performance.

5.3Algorithm Complexity
The realrecital of the system is directly affected by the intricacy of the algorithm. There are few conditions that the algorithm is complex, but it is better in conditions of throughput and resource utilization. To observe the other side, the algorithms which are having a low level of complexity may give poor performance i.e. fault tolerance, migration time, and response time. Therefore, on the basis of system prerequisites, care should be taken to choose a better or suitable load balancing algorithm. A trade-off between all the parameters must be set wisely.

Traffic analysis over different geographical location
It is an extremely vital approach to analyze the traffic flow in real-time scenarios over diverse geographic regions, and then balance the overall workload accordingly in balancing the load over the cloud computing environment. All regions over the globe have a distinct time zone and have certain peak hours during which the network load is supposed to be on its verge. Hence, the load balancer must be proficient enough for managing the traffic in peak hours at every location. Only then it will be possible to achieve maximum throughput and resource utilization.

Round Robin Load Balancing
In this algorithm, a time slice mechanism is followed while processing the data. Each process is going to be executed in the allocated time slot and then switch to another process and follow-on ring manner. In the round-robin, until all processes completed their task, a balanced technique is followed in order to balance the process in a group. The process is going to occur in round-robin until all processes complete their task such that a balanced technique is implemented in order to balance the process in a group. This algorithm is widely used in web servers where HTTP requests are similar in nature and distributed equally.

Dynamic Round Robin Load Balancing
In the Dynamic Load Balancing Algorithm, current load statistics are analyzed by the load balancer at each available server and a relevant request is executed at the required server. In essential round-robin calculation, the Load balancer allots a VM to asking for the hub in a cyclic way similarly among every single accessible hub.

Power Aware Load Balancing (PALB)
In this [10] process firstly utilization percentage of each computing node is estimated for the working module, Which decides the number of operating computing nodes while other nodes are completely shut down or not in working condition. This algorithm has three sections in the working module: balance section, upscale section, and downscale section. The Balance section is responsible for determining the initialization process where the virtual machine is going to start. The second section power up the additional computing nodes and the third downscale section shut down the idle compute node in the process participant.
The algorithm performs its best onconsumption as compared with the other existing algorithm in the same category.

Fuzzy Active Monitoring Load Balancing (FAMLB)
A fuzzy logic-based algorithm for load balancing was proposed by Srinivas Seth et al. [13]. This algorithm introduces two parameters i.e., system load and processor speed on a virtual machine. In [15], the author haspresented a novel fuzzy logic-based dynamic load balancing algorithm with some added parameters including virtual machine status , bandwidth usage, memory usage, disk space usage, and proposed it under the name of fuzzy Active Monitoring Load Balancer .

Min-Min Load Balancing
An approach for the load balancing where all the information related to the job is available in prior. Min-Min algorithm [8] begins with a set of entire pending job pool. Firstly, the time taken to complete a task is calculated. The selection of job is made on the basis of minimum completion time. At the end, the mapping of selected node and the selected job is done. The ready time of the node is rationalized. The repetition of this process is donetill the assignment of all unassigned jobs is completed. The benefit of this particular algorithm is that job with the smallest execution time is executed. The downside of the concerned algorithm is that some jobs may undergo starvation.

Max-Min Load Balancing
It works on the Opposite strategy as compare with a minmin approach where the extreme value is considered to execute first. Max-Min [7] algorithm almost resembles with min-min algorithm except that after detectingleast completion time of jobs, the highest value is selected. The choice of machine that possesses minimum completion time for all the jobs is done. At the end, the mapping of selected node and selected job is done. The ready period of the node is updated by accumulating the execution time of the assigned task. The process that takes maximum time is shifted one by one.

Two-phase (OLB + LBMM) load balancing algorithm
This algorithm was proposed by S.C. Wang et al. [16] which allows the merging of Opportunistic Load Balancing (OLB) and Load Balance Min-Min (LBMM) scheduling algorithms to achieve enormously high efficiency of the system. The principle of the OLB algorithm specifies putting every single node in working condition resulting in achieving the goal of cloud computing. At the other end,(LBMM) scheduling algorithm is executed for dropping the relevant execution time of the processes on a node that will consequently minimize the overall completion time. The collaboration of these two algorithms facilitates to achieve proper utilization of existing resources and boosts the work efficiency ofsystemwith multiple processors.

Throttled Load Balancing
In the paper [15] author described an algorithm in which the client initially raises a request for the load balancer to find a suitable virtual machine to perform the required operation for the incoming process. In Cloud computing, there may be multiple instances of the virtual machines. These virtual machines can be grouped based on the type of requests they can handle. So as per the incoming requests, it works accordingly. Whenever a request is sent by the client, the load balancer will first look for that group and if it is ready to accept and handle the request it is going to assign the request to it.

Honeybee Foraging Behavior
This is a load-balancing algorithm [17] that is analogous to the behavior of how honey bees find and reaps their food. There is a category of bees called forager bees. They search for food and after getting it they come back for an announcement. They announce it by doing a dance called the waggle dance. This dance is the description of available metadata food. After getting the information the scout bees follow the searcher bees towards the food location for storage purpose. Then returning to the beehive they again do a waggle dance which gives the information of available food to be occupied and then more food can be consumed by the honey bee. In load balancing with the increasing and decreasing web server's demand, the services are also assigned dynamically to map the users changing demands. Within virtual servers the server is clustered, each virtual server has its own virtual service queue. Like the quality that bee shows by their waggle dance each server also calculates a profit or reward from the request queues. This reward can be measured by the amount of time that the CPU spends on the processing of a request. In the case of honey bees, the dance floor is analogous to an advert board here. This mechanism in virtual server and load balancing is also useful while occupying the server for a process.

Active Clustering
This load balancing algorithm works on the principle of grouping similar ones and working on them group-wise. The performance of the system is enhanced with high resources thereby increasing the parameter outcome using the algorithm. This algorithm is degraded with an increase in system diversity [18]. A node initiates the process and selects another node called the matchmaker node from its neighbors, satisfying the criteria that it should be a different type than the former one. The following set of processes are executed one by one up to the process end.
 The match maker algorithm performs a mechanism to form a connection between the matchmaker node and neighbor of it which is of the same type as the initial node.
 The matchmaker node then detaches the connection b/w itself and the initial node.

Biased Random Sampling
In this paper author, M. Randles et al. [20] proposed a dynamic approach which is based on a random sampling of the system domain to achieve self-organization, thus balancing the load in all system available node. Here a virtual graph is used, with the connectivity of each node which shows the load on the server. Regarding job execution and completion in the network:  Whenever a node does or executes a job, it deletes an incoming edge, it indicates the occupation of the resources.  Once a job is finished it also free the resources.
The addition and deletion of processes are done by the mechanism of the random sampling algorithm. In Table 1: various metrics have been considered to compare different techniques. The metrics on which the existing load balancing techniques have been measured are discussed below: Throughput: This metric is used to estimate the total number of tasks, whose execution has been completed successfully. High throughput is necessary for overall system performance.
Overhead: Overhead associated with any load balancing algorithm indicates the extra cost involved in implementing the algorithm. It should be as low as possible.
Fault Tolerance: It measures the capability of an algorithm to perform uniform load balancing in case of any failure. A good load balancing algorithm must be highly faulted tolerant.
Migration Time: It is defined as, the total time required in migrating the jobs or resources from one node to another. It should be minimized. Response Time: It can be measured as, the time interval between sending a request and receiving its response. It should be minimized to boost the overall performance.
Resource Utilization: It is used to ensure the proper utilization of all those resources, which comprised the whole system. This factor must be optimized to have an efficient load balancing algorithm.
Scalability: It is the ability of an algorithm to perform uniform load balancing in a system with an increase in the number of nodes, according to the requirements. An algorithm with higher scalability is preferred.
Performance: It is used to check, how efficient the system is. This has to be improved at a reasonable cost, e.g., reducing the response time though keeping the acceptable delays.

CONCLUSION AND FUTURE WORK
The above-mentioned techniques for load balancing demonstrated that there are a number of practices that have been designed to resolve the issues of load balancing in cloud computing and to locate the virtual machine in the cloud to achieve an effective solution. It has been observed that the approaches were optimized using optimization algorithms satisfying several parameters. Further, there is a scope for enhancing the work in this field by using the hybridization of optimization algorithms. In addition to this VM machine placement is one of the important factors that need to consider for achieving an overall effective load balancing approach