Rational load balancing in collaborated cloud computing environments

Optimum efficiency and fault tolerance are the most demanding and challenging issues in the domain of performance and reliability management in cloud computing environments. Optimized resource utilization is a key aspect for yielding efficiency in cloud platforms. Workload balancing through resource sharing is one of the key solutions for attaining performance in cloud environments. In addition, multiple cloud environments join hands to offer performance and fault tolerance through resource sharing. We provide a better and cloud-instances’ priority-based efficient load balancing method for collaborative cloud platforms. The recommended efficient load balancing method shortens the waiting timespan and overcomes the starvation problem of low priority instances in intercloud environments. A functional prototype of the recommended load balancing method was deployed on a physical cloud infrastructure which was setup with the OpenStack cloud software on the Fedora Linux operating system. The pilot project execution findings exhibit a reduction in the timespan borne by instances for executing load balancing. This technique is useful for attaining fault tolerance and efficient resource utilization in intracloud and intercloud environments.


Introduction
Technological advancements in high-end computing systems, communication systems, and networked storage units have accelerated the growth of computing solutions in diverse societal domains.One such computing architecture is cloud computing.Currently various information technology solutions are generally engineered around one or more dimensions of cloud computing architectures by employing various cloud-based services.Among existing cloud services, Infrastructure as a Service (IaaS) offers on demand compute, storage and network services.End-users often procure high-end virtual machines for running comprehensive CPU-centric jobs.On the cloud infrastructure side, service providers strengthen back-end support with the help of collaborated cloud computing environments.the benefits of collaborated cloud computing platforms include better fault tolerance in terms of increased resource availability in multiple cloud computing environments [1].
Although the demand for cloud-based resources is experiencing exponential growth, effective cloud resource management in terms of resource allocation and distribution is critical.Inadequate and inconsistent resource employment and management typically lead to poor utilization of cloud-based resources, resulting in dissatisfaction and a weak return on service level agreement.In cloud computing environments, load balancing works as a technique for splitting computing resources and workloads.Load balancing in cloud computing environments allots jobs and cloud resources across various servers to offer various benefits such as: improved performance, higher throughput, and enhanced scalability.Load balancing empowers stake-holders to accomplish the demands related to workload and applications by distributing the cloud resources among cloud-based servers, workstations and networks [2].However, fault tolerance is equally important for upholding user satisfaction by offering an uninterrupted supply of cloud services and sustaining service-level agreements.Collaborated cloud computing environments can be implemented to attain not only uninterrupted cloud services, but also performance improvement, thereby attaining satisfactory user service level agreement.Various on demand resource-sharing requests can be answered in collaboration with other cloud environments.Moreover, collaborated cloud environments can become equally useful for achieving fault tolerance.
This paper presents a contemporary technique for enhanced load balancing by means of dynamic and intercloud resource sharing in collaborated cloud computing platforms.The recommended rational load balancing mechanism works on not only dynamic load balancing in line with respective instance priority level but also protects instances from starvation in cloud environments.The recommended resource sharing approach encourages starvation avoidance and waiting time reduction for overcrowded machines in collaborated cloud computing environments.
It is known that applying priority-oriented resource sharing in cloud computing environments is beneficial.In collaborated cloud computing environments, cloud instances generally operate at different priority levels.Some of the commonly exercised priority levels are: low, standard and high.In contrast, such load balancing algorithms often create starvation problems causing low-priority cloud instances to suffer indefinite waiting.A priority-based and starvation-less load balancing technique for collaborated cloud environments has been presented here.The recommended mechanism demonstrates a decrease in the waiting time.Such a reduction in the waiting time of overburdened instances yields better performance, cloud service quality and cloud service consumers' satisfaction.Moreover, on the inter cloud platform, the suggested load balancing technique keeps watching for starving instances.The technique continuously looks for starving instances and operates them to avoid them away from performance droppage.
The rest of the research paper is organized as follows: section 2 discusses our observations from the relevant literature, whereas the suggested load balancing technique is discussed in section 3.Sections 4 and 5 provide implementation details, experimental observations, and results, respectively.Section 6 presents the concluding remarks and future research directions.

Literature review
The objective of load balancing is broadly concerned with how workload in cloud computing systems is allocated among cloud instances.However, inadequate and ineffective cloud resource management may result in poor resource utilization, lower performance, and poor service quality.Some of the substantial observations based on our study about prevailing resource sharing techniques in cloud computing environments are presented here.
A new load balancing technique [2] FIMPSO is a hybrid of an Improved multi objective Particle Sworm Optimization and firefly.To minimize the search space and identify the enhanced response, the technique deploys the firefly algorithm.This technique functions by choosing the best global best particle using a small distance from a point to a line.The simulation results indicate utilization improvements in the CPU, memory and throughput.
To achieve enhanced load balancing, a combination of nature inspired and existing ABC and BAT algorithms, called HBATAABC, is available in [3].When the load search in ABC algorithm is replaced by the local search section in the BAT algorithm, the fitness function of the BAT algorithm undergoes a second change.The technique reports an improvement in the network stability and average network time.
Migration of virtual machines is also is an alternative solution for performing load balancing.EGSA-VMM [4] is one such technique.This technique works on an algorithm for exponential gravitational force.The technique integrates the theory of an exponential weighted moving average and an algorithm for gravitational search.The technique improves the quality of service and reduces the cost of migration.
An autonomous agent-based algorithm for load balancing in cloud computing environments is available in [5].The mechanism falls into the dynamic load balancing category of resource sharing in cloud computing.This technique addresses the proactive workload calculation of a virtual machine in a data center.Whenever a particular VM's workload reaches the threshold workload, the load agent initiates a search for a suitable virtual machine for load balancing.
A starvation free and priority-oriented technique available for resource sharing in cloud computing environments [6] works on the allocation of cloud resources on the basis of the priority value of virtual machines with a motive to prevent starvation by reducing waiting time.However, the technique offers load balancing in mono and non-collaborated cloud computing environments only.
A hybrid multi-faceted load balancing approach [7] is based on particle sward optimization and ant colony optimization.The simulation results showed a reduction in the makespan time and computation cost.The simulation results also show an increase in resource utilization rate.
A load balancing algorithm [8] for bursty workloads in cloud computing can adapt to variations in the rate of incoming requests.The technique works on the round robin algorithm in burst and random states during the non-burst state.The fuzzy logic in the technique helps determine the target VM for load balancing.A dual fuzzy technique-based load balancer [9] for cloud data centers represents claims extensive findings and supports improved service quality.
An intelligent water drop algorithm based load balancing technique [10] works on task optimization in a secure cloud environment.The technique was implemented using a cloudsim simulation framework.The simulation results indicated better results.
Another framework for load balancing in cloud computing for cross region tasks [11] operates at the database level by splitting an equal amount of computing time to all nodes in the cloud environment.
An additional resource sharing technique with the objective of load balancing in collaborated cloud computing environments is available in [12].The suggested load balancing mechanism solves the starvation issue based on priority-oriented resource sharing in inter cloud computing environments.However, the implementation of the technique may cause starvation issue for instances with low priority in collaborated cloud environments.
According to [13], green cloud computing environments help address energy consumption and operational costs.The suggested load sharing technique, is implemented on green cloud computing in line with process scheduling with the objective of energy conservation.The technique offers hybrid process scheduling using a priority-oriented weighted round robin and minimum completion time.
A two listed throttled load balancing technique [14] is a modified mechanism of the conventional throttled load balancer.This technique works to improve the task distribution on cloud virtual machines.The CloudAnalyst-based simulation results indicate improved results compared with the conventional throttled load balancer approach.The simulation results show better results than those of the active monitoring load balancer and round robin scheduler.
In [15], an algorithm for real time virtual machine migration was developed.The results of 3-tier architecture-based technique indicated improved results over closed data center-based load balancing.The simulation results show an improved processing time, optimized response time, and cost.
An intelligent algorithm for workload management for systematic traffic balancing and homogeneous load allocation available in [16] claims an increase in the response time for enhanced performance.This technique works based on the theory of dynamic divisible load across cloud nodes for load balancing.
According to [17], throttled load balancers address just a predefined count of cloudlets for the assignment of virtual machines.An ant colony algorithm [18] based load balancing technique works on a controller for dynamic data stream forwarding and by calculating the link with the least load.The simulation results indicated a decrease in response time and an improvement in the computational response.
A metaheuristics-based algorithm [19] indicates energy efficient workload sharing for cloud computing environments.Performance of the algorithm was tested on cloudsim simulator.
An efficient resource procurement mechanism [20] works on forming alliances to minimize purchase costs while ensuring individual stability and varying deadlines.The solution works on establishing a coalition game based on multi-customer resource procurement for optimal solution maximizing resource utilization and minimizing cost per customer.This mechanism offers efficient resource procurement helping both providers and customers.
A load balancing technique [21] focuses on practical load balancing strategies, emphasizing the importance of considering both queue length and attained service time for efficient system performance.The technique works on Phase type distributed incoming jobs.The experimental results report improvement in waiting time and response time within the First Come First Server (FCFS) server.
A checkpoint mechanism based workflow scheduling technique in cloud environments [22] works on improvement of system reliability and attain workflow deadline.The mechanism also addresses various constrains regarding energy consumption.The technique comprises of three modules working in collaboration on deadline partitioning, initialization of workflow application and selection of virtual machines and energy partitioning.Experimental results indicate improved reliability and energy consumption.
A collaborative offloading strategy in dynamic cloud-edge-end environments [23] works on full resource utilization and latency minimization.The authors [23] have suggested an infinite queue based load dynamics model and latency model for describing the influences of various cloud-edge-end systems.The proposed dynamical system is based on load dynamics model addressing cloud center and edge servers.The genetic algorithm framework based proposed simulation technique proposes load evolution model and solves load balance aware offloading technique.The technique may be further studied in context of adaptive dynamic programming and reinforcement learning.
A task migration method based on subtask partitioning in collaborative edge networks assumes that a task can be divided into subtasks which can be parallelly executed on multiple collaborative edge networks [24].For load balancing in vehicular networks, the task migration method shifts the subtasks from overloaded multiaccess edge centers to underloaded multi-access edge centers.The simulation results indicate improvement in service reliability and reduced latency.
A latency minimization technique based on partial execution in both cloud network and edge node [25] works on collaboration of edge environments and cloud environments.In order to reduce mobile devices' weighted sum latency, the technique addresses joint computation and communication resource allocation followed by closed-form task splitting.The joint strategy integrates normalized backhaul capacity of communication with the normalized capacity of cloud computing.Suggested simulation results indicate improved delay performance in presence of collaboration between edge and cloud computing environments.
There exist load balancing mechanisms in collaborative cloud computing environments.Existing load balancing techniques work on principle of workload migration from overloaded instance to underloaded instance.Many of the available load sharing techniques in the above-mentioned literature survey represent results and observations based on simulation work.Furthermore, certain load balancing mechanisms based on simulation work, require knowledge of temporal factors such as the time of task assignment and service time in advance.However, resource sharing techniques that work for inter cloud computing environments suffer from starvation issues.However, some resource sharing techniques aim to reduce cost and response time.Certain load balancing techniques migrate jobs to idle or lightly loaded instances.Some load sharing solutions are closed source.Moreover, majority of the reported load balancing functionality works only in intra cloud computing environments.Some of them do not segregate cloud instances in context of individual instance's priority value.Such mechanisms consider all instances alike and thereby load balance all cloud instances at identical priority level.Such mechanisms consider all instances alike and thereby load balance all cloud instances at identical priority level.However, some priority-based load sharing mechanisms suffer from starvation issues in collaborated cloud computing platforms.Hence, a priory-based but starvation free load balancing mechanism in intercloud computing platforms is proposed here in.

Materials and method
The load sharing technique available in [6] brings together intracloud resources for resource sharing.This technique provides priority oriented, starvation-free and balanced load balancing.However, this technique is only applicable to the intra cloud computing environments.In contrast, the resource sharing technique [12] works for intercloud environments in accordance with the preassigned priority levels of cloud instances.Nevertheless, the mechanism may cause the standard priority and low priority instances to land into starving situations due to the overburdening of resource sharing triggered by the high priority instances.Moreover, in the case of collaborated cloud resource sharing, starvation issues at the inter cloud level also require attention.
Hence, the existing functionality of the load sharing techniques available in [6] and [12] requires appropriate upgradation and refinement respectively.An extended technique of [6] and a refined mechanism of [12] in intercloud computing environments are presented here with the objective of giving necessary consideration to such highly loaded starving instances.
In order to carry out rational load balancing, the recommended resource sharing mechanism performs workload balancing between cloud instances of the same priority level.After identifying source and destination instances for load balancing, the mechanism toggles state of the source and destination instances to passive state.It protects the source and destination instances from instantaneous underloading and overburdening.The load balancer thread ignores such instances while making any fresh resource sharing decisions on temporary basis.The mechanism periodically toggles state of such passive instances from passive state to available state indicating their candidature as available for resource sharing.Instances with available state indicate their availability for participating in load balancing process.Moreover, the mechanism prevents low priority overburdened instances from indefinite waiting.
-Let the module POEInterCloudLB be the suggested collaborated cloud load balancer.
-Let the module POEInterCloudLB consist of two sub-modules POEInterLB and POIntraLB for executing inter cloud and intra cloud load balancing operations.
-Let the data structure instance maintain - • inventory of computing resources available on a cloud instance, such as primary memory, cores, current workload, bandwidth, passive_set_time and Waiting time in queue.
• The data structure instance also holds the priority value of the cloud instance.An instance may have any one of the three priority values: low priority, standard priority and high priority.
• Current position.At a time, an instance may participate in either intracloud load balancing or intercloud load balancing.
• Current state of instance.At a time, an instance may be in any one of these four states: available, unavailable, underload passive and overload passive.
-A daemon thread thread_POEUnderloadedInstance - • keeps finding underutilized instances at intracloud and intercloud level.
• The thread populates such underutilized instances in respective priority-queues for embarking them available and ready for accepting incoming load balancing requests for over loaded instances.
-A daemon thread thread_POEOverloadedInstance - • keeps finding over utilized instances at intracloud and intercloud level.
• The thread embarks such overloaded instances in respective priority-queues for shifting their excessive workload towards respective priority underloaded instances.
-In case of unavailability of space in queue at intracloud environment, the load balancing is set at respective priority queue in the intercloud environment.
• The priority based balancing of workload involves resource distribution between identical priority over utilized instances and lightly loaded instances.
-Cloud instances' priority based resources sharing in intercloud computing environments is carried out by the thread_POELoadBalancer thread.
• On other side, load balancing in intracloud computing environment is performed by the thread_LoadBalancer thread.
-Before carrying out actual load balancing, both load balancers check availability of the source instance and destination instance.
-Here the source instance refers to an overloaded instance say pI O from where workload is required to be shifted elsewhere.
• On other side, the destination instance refers to a lightly loaded instance say pI U of whose underutilized resources can be shared with other resources for workload balancing purpose.
-The continuously running load balancer thread_POELoadBalancer thread - • Pulls out the underutilized instance pI U from respective priority queue.Sets availability status of the instance pI U as iUNDERLOAD_PASSIVE passive to protect it from overwhelming incoming requests for receiving load balancing requests leading to instantaneous overburdening.
• Pulls out the overloaded instance pI O from respective priority queue.Sets availability status of the instance pI O as iOVERLOAD_PASSIVE passive state to protect its workload from instantaneous transfer to multiple instances.
• Sets availability status of overloaded instance to passive.
• Balances workload from overloaded instance pI O to underloaded instance pI U .
• In order to keep the instances pI O and pI U away from participating in load balancing, set their passive_set_time.
-The continuously running thread thread_POEoperateStarvingInstance works for low priority overloaded instances which are waiting indefinitely for availability of underloaded instances for workload sharing purpose.The thread shuffles such starving instances between intercloud platform priority queue and intracloud priority queue.Furthermore, in order to keep low priority instances away from starvation, low priority instances are not allotted to high priority instances until there exist overloaded low priority instance.
-The continuously running thread thread_ManageState keeps watching the passive_set_time property of passive instances.The thread toggles such instances available for load balancing by setting their iStat state property as iAVAILABLE.The following text presents explanation of the core algorithm steps and features of numerous components that comprise the suggested POEInterCloudLB priority oriented and enhanced inter cloud load balancing mechanism: 11.Both load balancers work in such a way that load sharing does not place undue strain on the previously underloaded instances.

The recommended load balancing technique module
12.Moreover, the suggested load balancing solution also addresses the starvation problem in the inter cloud computing environment.An endless running daemon thread thread_POEoperateStarvingInstance on an intercloud computing platform, keeps watching the waiting times of the low priority instances.To reduce waiting time, the thread reshuffles and handles such instances.

Implementation
For experimenting the proposed resource sharing mechanism, an implementation of the recommended priority oriented load balancing mechanism was deployed on a prototype private cloud computing platform setup with Infrastructure as a Service (IaaS).The open-source operating system Fedora Linux 34 was setup on two server hosts.Infrastructure as a Service was set up on these two Fedora servers using open source OpenStack cloud computing setup software.To maintain intercloud priority queues and a load balancer, a proxy server configured with an open source operating system was set up between the two Fedora servers [7,13].
For testing behavior of the recommended resource sharing mechanism, load balancing operations were experimented respectively in absence and presence of the it.In beginning, the waiting time was recorded while not running the recommended load balancing method.Then, the waiting time was recorded while running the recommended load balancing method.Resultant waiting times are shown in the table 1.Moreover, by means of comparative analysis the figure 2 shows enhanced results achieved with the recommended load balancing mechanism.

Results and discussion
The execution of the technique begins by initializing data structures and setting up various priority queues: qO std , qU std , qO high , qU high , qO low and qU low at both intercloud and intracloud computing platforms.After establishing the queues and data structures, the technique launches continuously running daemon threads: thread_POEUnderloadedInstance, thread_POUnderloadedInstance, thread_POELoadBalancer, thread_POEOverloadedInstance, thread_POLoadBalancer, thread_POUnderloadedInstance, and thread_POEoperateStarvingInstance.For workload sharing purposes, various overutilized instances on an intra cloud platform may be waiting for the availability of right underutilized instances having the same priority level.Moreover, some idle instances may be looking for pertinent resource sharing requests.On the other hand, at the inter cloud platform, various underloaded instances may be looking for incoming load balancing requests sought by overloaded instances having the same priority level.
The daemon thread thread_POEoperateStarvingInstance running on intercloud computing platform moves on finding and operating starving instances.The experimental findings for the overburdened low priority instances are listed in table 1.The findings in terms of waiting times measures with our new method are compared to those of the existing mechanism in table 1. Table 1 lists the waiting times of starved instances in the absence and presence of our recommended thread thread_POEoperateStarvingInstance.The objective of thread thread_POEoperateStarvingInstance is to efficiently handle the starved overutilized instances to reduce their waiting time.
Table 1 characterizes the time spent by sample overloaded instances for awaiting decisions regarding load sharing in an intercloud computing platform.Column A in table 1 shows the experiential waiting times borne by sample overloaded instances, while the thread thread_POEoperateStarvingInstance does not run on the intercloud computing platform.The mean waiting time in this case was 25.026 ms.Column B in table 1 shows the experimental waiting times borne by sample overloaded instances, while running the thread thread_POEoperateStarvingInstance on the intercloud computing platform.The mean waiting time was 9.993 ms.
Figure 2 shows the shrinkage in the average waiting time while running the recommended daemon thread thread_POEoperateStarvingInstance, giving rise to performance.Such shrinkage in waiting time   reveals an increase in performance as a consequence of a fall in waiting time borne by overburdened instances in receiving intercloud load balancing decisions.Furthermore, in order to test consistency of our recommended load balancing mechanism, the abovementioned experimentation was implemented and evaluated over 10 cloud environments of which results are shown in table 2. Column A in the table 2 shows mean waiting time which was observed in absence of our recommended load balancing mechanism.Column B in the table 2 shows mean waiting time which was observed in presence of our recommended load balancing mechanism.
Figure 3 shows comparative performance analysis between -the average waiting time observed in absence of our recommended load balancing mechanism and the average waiting time observed in presence of our recommended load balancing mechanism-for the results mentioned in the table 2.
Figure 3 depicts the reduction in average waiting time while using the recommended load balancing strategy, resulting in improved performance.Such decrease in average waiting time reveals increase in performance as a result of a reduction in waiting time incurred by overburdened instances in receiving load balancing decisions.
While performing intercloud load balancing, low priority overburdened instances in cloud computing environments benefit from the shortened waiting time.This helps low priority instances to quickly avail more resources without faster execution of load balancing operations.Consequently, faster accessibility of supplementary cloud resources leads to faster job completion resulting in gross system performance and enhanced utilization of cloud resources.

Conclusion
An extended and prioritized technique for resource allotment for load balancing in intercloud computing environments is introduced.This technique is useful for attaining resource sharing in both intracloud and intercloud environments.This technique treats instances separately, and load balancing is executed in the context of different priority levels of cloud instances.The technique addresses the issue of starvation of low priority instances; it prevents low priority instances from indefinite waiting problem on the intercloud platform.Moreover, the recommended resource sharing technique can be employed to attain fault tolerance in cloud computing environments.
We assume the cloud instances with static priority levels.Moreover in future, the recommended load balancing mechanism can be studied further for its enhancement towards dynamic priority level of cloud instances.

Figure 1
Figure 1 characterizes distinctive schematic associations among the key components of the novel and improved resource sharing technique POEInterCloudLB, priority oriented and enhanced inter cloud load balancer.Two local cloud computing environments Cloud-A and Cloud-B, execute intra cloud load balancing with help of POIntraLB load balancer module.Whereas intercloud load balancing between the Cloud-A and Cloud-B is handled with the POEInterLB load balancer module.The following text presents explanation of the core algorithm steps and features of numerous components that comprise the suggested POEInterCloudLB priority oriented and enhanced inter cloud load balancing mechanism:

Figure 2 .
Figure 2. Performance comparison of load balancing algorithms.

Figure 3 .
Figure 3. Performance comparison on multiple cloud environments.
POEInterCloudLB comprises of two building blocks: POEInterLB and POIntraLB.The building block POIntraLB performs workload sharing on the intra cloud platform.In contrast, the building block POEInterLB handles workload balancing at the inter cloud level in an enhanced manner.It also works on handling indefinite starvation issues on an inter cloud computing platform.Both load balancers execute resource sharing in line with the priority levels of the respective source and destinations cloud instances.At a time, any instance can be in one of the following possible iState states: iAVAILABLE, iUNAVAILABLE, iOVERLOAD_PASSIVE or iUNDERLOAD_PASSIVE.Any instance with an iAVAILABLE current state is available for load balancing.Any instance with an iUNAVAILABLE current state is not available for load balancing, because it might not have consented for load balancing or it is not running at present.Any instance with the iOVERLOAD_PASSIVE state just released some of its workload.Any instance with the iUNDERLOAD_PASSIVE state just received some of its workload.At a time, an instance may participate in either intracloud load balancing or inter cloud load balancing.An instance currently available for intracloud load balancing has a position iPos variable set as the pINTRA.Conversely, an instance currently available for intercloud load balancing has a position iPos variable set as the pINTER.When, for load balancing purpose, an instance is switched from intercloud to intracloud, its position is toggled to pINTRA.Information about such poorly utilized instances is retained in the respective priority queues maintained to hold lightly utilized instances.Load balancer modules keep distributing the workload to poorly utilized instances.Nevertheless, there is no space available in local intracloud respective priority queues, and the local cloud load balancer submits such instance details to the intercloud load balancer priority queue to enable it to open receive incoming requests for intercloud load balancing.In such a case, the position variable of such underloaded instances is toggled to the pINTER.Both the POEInterLB and POIntraLB modules, with the help of two endlessly running respective daemon threads, thread_POEOverloadedInstance and thread_POOverloadedInstance, regularly move on figuring out over utilized instances.Information about such overburdened instances is retained in the respective priority queues maintained to hold over utilized instances.Load balancer modules keep distributing the workload from such over utilized instances.Nevertheless, there is no space available in local intracloud respective priority queues, and the local cloud load balancer submits such instance details to the intercloud load balancer priority queue to enable inter cloud load balancing.In such a case, the position variable of such overloaded instances is toggled to the pINTER.Two daemon threads thread_POELoadBalancer and thread_LoadBalancer endlessly execute load balancing operations.Thread thread_POELoadBalancer operates in an intercloud computing environment.Thread thread_LoadBalancer performs load balancing operations in an intracloud computing environment.The suggested technique, being a priority oriented load balancing mechanism, involves resource sharing between same priority overloaded instances and underutilized instances.

Table 1 .
Waiting time borne by instances for availing intercloud load balancing: in presence and absence of the recommended thread thread_POEoperateStarvingInstance.

Table 2 .
Waiting time borne by instances for availing intercloud load balancing: in presence and absence of the recommended load balancing mechanism.