With High Level Fragmentation Of Dataset, Load Balancing In Cloud

advertisement
With High Level Fragmentation Of Dataset,
Load Balancing In Cloud Computing
Devesh Kumar
Vineet Tyagi
Computer Engineering Department
Shobhit University
Meerut, U.P., India
vineettyagi28@gmail.com
Computer Engineering Department
Shobhit University
Meerut, U.P., India
deveshkumar1990@gmail.com
Abstract— Cloud computing may be considered as another
name for distributed computing by heterogeneous resources over
a network, which use all the resources to compute the utility
using virtualization technologies and real time communication
networks for data transfers (usually over the internet). This gives
the ability to run a program over a network of processing devices
at the same time, where each processing unit individually
working on a subset of dataset.
Vijay Maheshwari
Assistant Professor
Computer Engineering Department
Shobhit University
Meerut, U.P., India
develop an effective load balancing algorithm which could utilize
the powers of different existing algorithms put together to
maximize or minimize different parameters like throughput
latency etc for the cloud of different sizes and topologies.
Keywords—Load Balancing, Cloud Computing, Software
Engineering.
I.
A very large number of enterprises have started providing
and using cloud enabled infrastructures and services. But still a
lot of work is required to be done in the field of cloud computing
because of the challenges in the field of like fault scalability, high
availability, scalability, tolerance, flexibility, reduced overhead
for users, reduced cost of ownership, on demand services and the
most important of them Load Balancing etc.
The core of all these issues is actually related to the Load
Balancing issue, where the load can be of several types like load
on the processing unit, load on the network, load on the memory
etc. Load balancing is the process of distributing the load over
the network among various nodes in the distributed network to
get the result in the minimum possible time as well as to utilize
the resources at their maximum. In the situations where some of
the nodes are heavily loaded, while other nodes are not being
used or not being used to their maximum capacity makes a
situation of bottleneck in Cloud responsible for both delay in
response time of the service as well inefficient use of the cloud
resources.
Load balancing ensures that all the available resources are
being used in the way that their maximum utilization of the
resources is taking place. In a homogeneous system load
balancing is easy to perform since all the resources can be
allocated same amount of work and they will respond back in
almost same time. But the issue lies in the heterogeneous clouds,
since every unit in the heterogeneous cloud behaves differently
and has different attributes responsible for different response
times for any particular process, so the distribution of work in
heterogeneous clouds cannot be done in a homogenous way. In
real world scenarios most of the clouds use heterogeneous
resources for computation because of the continuously changing
technologies.
Our work in this paper first compares the existing methods of
load balancing in cloud computing, then our objective is to
INTRODUCTION
These days cloud computing is one of the major topics of
discussion as it promises high levels of scalability and
flexibility without making much efforts in setting up and
running the large scale data centers and computing
infrastructures. Cloud Computing is a very new paradigm
which enables organizations to scale up or scale down their
use of resources of information technologies based on their
requirements without making any efforts in infrastructures.
Since in cloud computing all the resources are in a shared
environment so a resource management mechanism is required
which can assign tasks to processing units whenever
necessary, handle requests, re-compute the responses returned
by the processing units, manage the data availability to all the
processing units etc. Since we live in a heterogeneous world
were evolution is the field of computers is a continuous
process So the cloud infrastructures are also changing. Load
balancing is one of the most important part of the resource
management, if load is not managed properly it can lead to
large delays in processes. Different kinds of load balancing
techniques will be explained later in this paper.
II.
CLOUD COMPUTING
A. Overview
Cloud computing is a on demand service in which shared
resources work together to perform a task to get the results in
minimum possible time by distribution of any dataset among
all the connected processing units. Cloud computing is also
referred to refer the network based services which give an
illusion of providing a real server hardware but in real it is
simulated by the software's running on one or more real
machines. Such virtual servers do not exist physically so they
can be scaled up and down at any point of time.[1]
Cloud computing that we are dealing with is related to the
processes to decomposing 'Big Data' tasks into small dataset
tasks and distributing them to several computing units, so the
task can be performed in the minimum possible time. Three
main characteristics are required by any cloud service :
resource publication through a single provider, ability to
acquire transactional resource on demand, and mechanisms to
bill users on the basis of resource utilization [1]. For detailed
discussion about deployment of cloud and services provided
by the cloud please use the publications [1-7].
B. Cloud Infrastructure
A cloud consists of a group of processing unit put together,
so we can define that the basic unit of cloud is processing
units, which are grouped together to achieve same goal. The
groups of processing units are connected to the master
processing unit which is responsible for assigning the tasks to
its slave units (single processing unit). The groups master
system is again connected to the head node of the cloud which
is responsible for receiving the tasks, dividing it into small
tasks and then assigning it to the group masters which further
assigns the tasks to its slaves. Please see the Fig.1 for the
pictorial representation of the same.[9]
Head Node
Job Distribution
by Master
processing results to
head node
node
Master
Data sharing in cloud is done by real time sharing over the
network, since all the data is required to accessible to all the
processing units for processing their dataset.
In the System Shown in Fig 1. Let a task is generated to be
processed by one of the CPU's then that task is first transferred
to the master of its group which again transfers the task to the
head node of the cloud. the clouds head node is responsible for
the division of big task into small tasks i.e. same task but to be
performed on smaller dataset. After division of the task the
head node transfers the assigned tasks to the master of each
group which again distributes the divided tasks to the slave
processing units. After the processing is complete the result is
then returned to the Masters by slaves, which re-compute the
result after getting results from all the slaves and sends it back
to the head node. The head node also combines all the results
of masters and pass it to the system which initially initiated the
process.
The hierarchy of the processing units in a cloud can go up
to any number of levels, but the concept of processing the 'Big
Data' in small datasets and the re-computing their results
remains the same. As mentioned earlier in modern scenario
the processing units can be located at different locations or the
datasets can be located at different locations. To make the data
available to each node a high speed network is used but a
unmanaged network can lead to creation of bottleneck in the
system so a manager or a load balancing system is required for
the availability of data to all the nodes. Similarly all the
processing units are not required to be having equal processing
power if the system need to wait for some particular
processing unit to complete its job then the whole system has
to keep on waiting for it to get complete, which ultimately
leads to wastage of resources in the system. Load balancing is
required here so that tasks could be divided in such a way that
all processing units produce their results in same amount of
time. This is possible by dynamic heterogeneous task
distribution systems.
C. Development models in Cloud Computing
Job Assignment to
processing
unit
There are mainly three different cloud computing models :
Processing
Unit
Data
Sharing
data
Fig 1. Cloud Infrastructure



Private clouds 
Public Clouds 
Hybrid Clouds 
Private cloud is a cloud in which the computing resource,
storage resources and cloud technology is owned by a private
enterprise. The owner is responsible for maintenance of the
infrastructure.
On the other hand public cloud is the one in which the
resources and technology may or may not be owned by more
than one organization but the resources are offered to external
users.
A hybrid cloud is the category of cloud in which a part of
the cloud infrastructure is maintained by the organization itself
with acquiring services from the public clouds.
These three different models of cloud are having both
advantages as well as disadvantages over each other. The main
By the use of a cloud infrastructure, different types of
services are offered by the organizations. First of them is
Software as a service (SaaS) infrastructure which offers
software applications to its customers. In this kind of service
the customer is not allowed to make changes in the
applications, however customization options available in the
software itself can be used by the user to make it more
compatible in use. Google email service is an example of SaaS
model. Second is Platform as a Service (PaaS) infrastructure,
the developers of the platform are provided with some API's in
different languages which can be used to modify the
application according to the use of the customer. The language
support is provided for some specific languages only. Google
Application Engine is an example of such platform. Third and
the last is Infrastructure as a Service (IaaS) in which even
infrastructure in terms of computing and storage resources is
customizable by the users according to their preferences. This
infrastructure is used to host applications. IaaS models often
provide automatic support for on demand scalability of
computing and storage resources [2].
Recently new clouds development models have came into
picture like Virtual Private Clouds (VPC). A VPC inherits a
public
cloud
with additional
functionalities
like
customizations of network topologies and security systems. So
a virtual cloud has the ability to use the cost effective system
of public clouds and security system of a private cloud. In the
similar way there are cases where a number of organizations
come together to develop cloud system for their common
personal uses, these are called as community clouds.
Community clouds provide much higher level of privacy and
security to the members of community.[9]
Both software and hardware development models are
explained in Fig. 2 in the pictorial form. The service models in
the figure also contains the examples of each service model.
Like Google App, Microsoft cloud service and Salesforce
CRM are the examples of Software As A Service, Google App
Engine, Yahoo open strategy and Microsoft Azure are the
examples of Platform As A Service and Amazon's Ec2, IBM Computing on Demand, VMware vSphere are the examples of
Infrastructure As A Service
Microsoft
Cloud Service
Salesforce
CRM
Model
s
Google
Apps
Google
App Engine
Yahoo Open
Strategy
Microsoft
Azure
Ser
vic
e
Platform As A Service (PAAS)
Infrastructure As A Service (IAAS)
Amazon
EC2
Public
Cloud
IBM -Computing
on Demand
Private
Cloud
VMware
vSphere
Virtual
Private
Cloud
Hybrid
Cloud
Models
D. Service models in cloud computing
Software As A Service (SAAS)
Develop
ment
advantage of using a private cloud is the control over all the
resources and infrastructure, which makes it feasible for them
to make changes in the infrastructure at any point of time
according to their requirements. But the disadvantage of using
a private cloud is the investment cost required to be put in
establishment of the infrastructure, in the same way the a extra
cost is required for the software and the maintenance
activities. The advantage of using the public cloud is that an
organizations itself does not have to take care of the cloud
computing infrastructure and operational activities. The
disadvantage of utilizing the services from a public cloud
provider is that it is completely dependent upon another
business entity that is offering resources through public clouds
for non critical business operations [2, 7].
Fig 2. Different Service and development Models
III.
LOAD BALANCING IN CLOUD COMPUTING
As this explained earlier, in cloud computing when a
computation is requested by any system it is distributed to all
the slaves existing in that cloud. So the way in which the
distribution is being done must get the response from all the
slaves at the same time so that there should not be any waiting
for any particular computing device to reply before further
processing could happen. But in the real time clouds
heterogeneous computing devices exists and any process's
execution time on the slave is required to be estimated.
So the main feature that is must in any load balancer is the
asymmetric load distribution. A greater ratio of workload is
required to be given to those with higher computation
capabilities. But sometimes just higher computation power
only cannot help is deciding how much share of the task is
required should be assigned to that system. This assignation of
proper task to proper system in heterogeneous computing
infrastructure is done by load balancer.
Load balancer is also responsible for 'Priority Activation'
which means that when the number of slave computing device
devices drops below a certain point the load balancer must
wake some of the sleeping devices to maintain the computing
performance for the client.
A. Persistence Issue in Load Balancing
D. MapReduce method for task distribution
One of the main issues faced by a load balancer is when
operating a load balancer service is ' how to handle information
that must be kept across the multiple requests in a user's session'
e.g. session data. If the information is stored only on computation
requesting system, it will not be accessible to other computing
devices and since subsequent requests takes place for this
information this can lead to a performance issue.
MapReduce framework is basically used for processing
large datasets across a large number of computers (a cluster in
the cloud). In this technique the processing is done in two
main steps that are : Map and Reduce. Each having its own
specific purpose leading to the result of computation. Both
Map and Reduce functions are explained below.
One of the solutions to this issue is sending all the requests
to the same computing device which contains this information.
This is known as persistence or stickiness. One major
downside of this technique is lack of automatic failures. If the
device containing the information goes down the whole
system gets down, also the any session of the processes
present on the system is also lost. So the problem is because of
non backed up centralized system, one of the solution is using
a backup system together but this will lead to major
performance issue. Next solution is related to backup system.
One other solution that can be used is by using database
for storing the information, but this increases the load on the
database. But databases provide solutions to some of the
problems that exists in centralized systems. Databases can be
backed up easily solving the problem of single point of failure,
databases are also highly scalable. Since in a backed up
system of databases there are several systems holding the
same information the query load can also be distributed over
them to get a better performance. Microsoft's ASP.net State
Server technology is an example of this kind of database. All
servers in the cloud store their information data on State
Server and any server in the cloud can retrieve the data.
"Map" Step : The process of converting a problem to small
sub-problems and distributing it to the salve nodes in the cloud
cluster is called as Map. There can be further distribution also
leading to multilevel tree structure. The slave computing
devices performs the processing and returns the result to the
requesting device - Master Node.
"Reduce" Step : After receiving the results from the slave
nodes the master node is required to perform the task of
combining the results into one, which is done in this step.
MapReduce functions can also be performed in distributed
systems. Since each mapping is independent to each other and
all mappings can be done in parallel, but this is limited by the
number of independent data sources and number of CPU's
near each source.
IV.
Following is the list of load balancing techniques known
with their short description :

VectorDot- This technique for load balancing in cloud
was proposed by A. Singh [10]. It was able to handle
the hierarchical complexity of the cloud system data
centers and multidimensionality of resource loads
across servers, network switches, and storage in an
agile data center that has integrated server and storage
virtualization technologies. This technique uses the
dot product to distinguish nodes based on the item
requirements and helps in removing overloads on
servers, switches and storage nodes. 

CARTON- This technique for load balancing in cloud
was proposed by R. Stanojevic [11]. This uses a
mechanism CARTON for cloud control that unifies
the use of LB and DRL. LB (Load Balancing) is used
to equally distribute the jobs to different computing
units so that the associated costs can be minimized and
DRL (Distributed Rate Limiting) is used to make sure
that the resources are distributed in a way to keep a
fair resource allocation. DRL also adapts to computing
device capacities for the dynamic workloads so that
performance levels at all computing units are equal.
With very low computation and communication
overhead, this algorithm is simple and easy to
implement. 

Compare and Balance- This technique for load
balancing in cloud was proposed by Y. Zhao [12].
addressed the problem of intra-cloud load balancing
amongst physical hosts by adaptive live migration of
virtual machines. A load balancing model is designed and
implemented to reduce virtual machine's migration 
B. Load Balancing Architecture
Both software and dedicated hardware options are available in
the market as a solution to the load balancing problem, including
open source solutions. Examples of the latter include the Apache
web server's mod_proxy_balancer extension, nginx, Varnish, or
the Pound reverse proxy and load balancer. Gearman can be used
to distribute appropriate computer tasks to multiple computers, so
large tasks can be done more quickly.

Multiple layers of load balancers can also be used to
achieve more sophisticated systems creating a tree structure.
The upper level load balancer distributes the task to lower
level computing devices which uses their own load balancer to
distribute the task further, this leveling in cloud can go up to
any number of levels creating very complex systems.
C. Scheduling Algorithms used in load balancing
There are a number of scheduling algorithms available for
load balancing to determine the computing device which
should be sent the next computing task. One of the most
simple is round robin algorithm. More sophisticated systems
use additional factors to determine this such as server's
reported load, number of active connections, , geographic
location recent response times, up/down status (determined by
a monitoring poll of some kind), capabilities, or how much
traffic it has recently been assigned.
LOAD BALANCING TECHNIQUES IN CLOUD

time by shared storage, to balance load amongst
servers according to their processor or IO usage, etc.
and to keep virtual machines’ zero-downtime in the
process. A distributed load balancing algorithm
COMPARE AND BALANCE is also proposed that is
based on sampling and reaches equilibrium very fast.
This algorithm assures that the migration of VMs is
always from high-cost physical hosts to low-cost host
but assumes that each physical host has enough
memory which is a weak assumption.









Event-driven- This technique for load balancing in
cloud was proposed by V. Nae [13]. This is an event
driven load balancing algorithm for real-time
Massively Multiplayer Online Games (MMOG). This
algorithm after receiving capacity events as input,
analyzes its components in context of the resources
and the global state of the game session, thereby
generating the game session load balancing actions. It
is capable of scaling up and down a game session on
multiple resources according to the variable user load
but has occasional QoS breaches. 
Scheduling strategy on LB of VM resources - This
technique for load balancing in cloud was proposed by
J. Hu [14].This is a scheduling strategy on load
balancing of VM resources that uses historical data
and current state of the system. This strategy achieves
the best load balancing and reduced dynamic
migration by using a genetic algorithm. It helps in
resolving the issue of load imbalance and high cost of
migration thus achieving better resource utilization. 
CLBVM- This technique for load balancing in cloud
was proposed by A. Bhadani [15]. This is a Central
Load Balancing Policy for Virtual Machines
(CLBVM) that balances the load evenly in a
distributed
virtual
machine/cloud
computing
environment. This policy improves the overall
performance of the system but does not consider the
systems that are fault-tolerant. 
LBVS- This technique for load balancing in cloud was
proposed by H. Liu [16]. This load balancing
technique considers virtual storage strategy (LBVS)
that provides a large scale net data storage model and
Storage as a Service model based on Cloud Storage.
Storage virtualization is achieved using an architecture
that is three-layered and load balancing is achieved
using two load balancing modules. It helps in
improving the efficiency of concurrent access by using
replica balancing further reducing the response time
and enhancing the capacity of disaster recovery. This
strategy also helps in improving the use rate of storage
resource, flexibility and robustness of the system. 
Task Scheduling based on LB- This technique for load
balancing in cloud was proposed by Y. Fang [17]. This
technique discussed a two-level task scheduling
mechanism based on load balancing to meet dynamic
requirements of users and obtain high resource
utilization. It achieves load balancing by first map-ping 
tasks to virtual machines and then virtual machines to
host resources thereby improving the task response
time, resource utilization and overall performance of
the cloud computing environment.


Honeybee Foraging Behavior- This technique for
load balancing in cloud was proposed by M. Randles 
[18]. This technique investigated a decentralized
honeybee-based load balancing technique that is a
nature-inspired algorithm for self-organization. It
achieves global load balancing through local server
actions. Performance of the system is enhanced with
increased system diversity but throughput is not
increased with an increase in system size. It is best
suited for the conditions where the diverse population
of service types is required.

Biased Random Sampling- This technique for load
balancing in cloud was proposed by M. Randles [19].
This technique investigated a distributed and scalable
load balancing approach that uses random sampling of
the system domain to achieve self-organization thus
balancing the load across all nodes of the system. The
performance of the system is improved with high and
similar population of resources thus resulting in an increased throughput by effectively utilizing the
increased sys-tem resources. It is degraded with an
increase in population diversity. 






Active Clustering- This technique for load balancing
in cloud was proposed by M. Randles [20]. This
technique investigated a self-aggregation load
balancing technique that is a self-aggregation
algorithm to optimize job assignments by connecting
similar services using local re-wiring. The
performance of the system is enhanced with high
resources thereby increasing the throughput by using
these resources effectively. It is degraded with an
increase in system diversity. 
ACCLB- This technique for load balancing in cloud
was proposed by Z. Zhang [21]. This technique
proposed a load balancing mechanism based on ant
colony and complex network theory (ACCLB) in an
open cloud computing federation. It uses small-world
and scale-free characteristics of a complex network to
achieve better load balancing. This technique
overcomes heterogeneity, is adaptive to dynamic
environments, is excellent in fault tolerance and has
good scalability hence helps in improving the
performance of the system. 
(OLB + LBMM)- This technique for load balancing
in cloud was proposed by S.-C. Wang [22]. This
technique proposed a two-phase scheduling algorithm
that combines OLB (Opportunistic Load Balancing)
and LBMM (Load Balance Min-Min) scheduling
algorithms to utilize better executing efficiency and
maintain the load balancing of the system. OLB
scheduling algorithm, keeps every node in working
state to achieve the goal of load balance and LBMM
scheduling algorithm is utilized to minimize the 
execution time of each task on the node thereby
minimizing the overall completion time. This
combined approach hence helps in an efficient
utilization of resources and enhances the work
efficiency.







Decentralized content aware- This technique for
load balancing in cloud was proposed by H. Mehta
[23]. This technique proposed a new content aware
load balancing policy named as work-load and client
aware policy (WCAP). It uses a parameter named as
USP to specify the unique and special property of the
requests as well as computing nodes. USP helps the
scheduler to decide the best suitable node for
processing the requests. This strategy is implemented
in a decentralized manner with low overhead. By
using the content information to narrow down the
search, it improves the searching performance overall
performance of the system. It also helps in reducing
the idle time of the computing nodes hence improving
their utilization. 
Server-based LB for Internet distributed servicesThis technique for load balancing in cloud was
proposed by A. M. Nakai [24]. This technique
proposed a new server-based load balancing policy for
web servers which are distributed all over the world. It
helps in reducing the service response times by using a
protocol that limits the redirection of requests to the
closest remote servers without overloading them. A
middleware is described to implement this protocol. It
also uses a heuristic to help web servers to endure
overloads. 
Join-Idle-Queue- This technique for load balancing in
cloud was proposed by Y. Lua [25]. This technique
proposed a Join-Idle-Queue load balancing algorithm
for dynamically scalable web services. This algorithm
provides large-scale load balancing with distributed
dispatchers by, first load balancing idle processors
across dispatchers for the availability of idle
processors at each dispatcher and then, assigning jobs
to processors to reduce average queue length at each
processor. By removing the load balancing work from
the critical path of request processing, it effectively
reduces the system load, incurs no communication
overhead at job arrivals and does not increase actual
response time. 
Lock-free multiprocessing solution for LB- This
technique for load balancing in cloud was proposed by X.
Liu [26]. This technique proposed a lock-free
multiprocessing load balancing solution that avoids the
use of shared memory in contrast to other
multiprocessing load balancing solutions which use
shared memory and lock to maintain a user session. It is
achieved by modifying Linux kernel. This solution helps
in improving the overall performance of load balancer in
a multi-core environment by running multiple loadbalancing processes in one load balancer. 
Performance Attributes For Load Balancing In
Clouds
Various performance attributes considered in existing load
balancing techniques in cloud computing are discussed below








Throughput is considered as no. of tasks whose
execution has been completed. For any load balancing
system throughput decides the quality so it should be
high. 

Overhead determines the amount of extra work
required to be done to implement the load balancing
algorithms. Overhead usually comes because of inter
processor
communications,
inter
process
communications, movement of tasks and data.
Overhead should be minimized to get the best results. 

Fault Tolerance system is a system in which the
processing does not get affected because of failure of
any particular processing device in the system. The
load balancing should be fault tolerant. 

Migration time is the time of movement of job from
the master system to the slave system and vice versa in
case of results. Migration time is the overhead which
cannot be removed but should be minimized. 

Response Time is the amount of time taken to
respond by a particular load balancing algorithm in a
distributed system. This parameter should be
minimized. 

Resource Utilization is the parameter which looks
into that how the resources are being utilized. The
resource utilization must be very high since one of the
main aspects of cloud computing is to use the
resources at the maximum. 

Scalability defines if the algorithm being
implemented can be used for any number of nodes and
any kind of hierarchical structure in cloud. Scalability
is one of the main concepts since clouds are expending
daily with increasing heterogeneity. 

Performance determines the efficiency of the system.
The overall performance of the system should increase
by using a particular load balancing technique. 
Based on these performance attributes, the existing load
balancing techniques have been compared in Table 1.
Where Tn stands for nth technique of the seventeen
techniques explained earlier.
Overhead
Fault tolerance
Migration time
Response Time
Resource Utilization
Scalability
Performance
T1
X
X
X
X
X
Y
X
X
T2
X
Y
X
X
X
Y
X
Y
T3
X
Y
X
Y
X
Y
X
X
T4
X
X
X
X
X
Y
Y
X
T5
Y
Y
X
X
X
Y
X
X
T6
X
X
X
X
Y
Y
X
Y
T7
X
X
Y
X
Y
X
Y
Y
T8
Y
X
X
X
Y
Y
X
Y
T9
Y
X
X
X
X
X
Y
Y
T10
Y
X
X
X
X
X
Y
Y
T11
X
X
X
X
X
X
Y
Y
T12
X
X
Y
X
X
Y
Y
Y
T13
X
X
X
X
X
Y
X
Y
T14
X
Y
X
X
Y
Y
Y
Y
T15
X
X
X
X
Y
X
Y
Y
T16
X
Y
X
X
Y
X
X
Y
T17
Y
X
X
X
X
X
X
Y
ATTRIBUTES
Throughput
TABLE 1- Comparison Of Existing Load Balancing Techniques Based On
Various Metrics
V.
HIGHER LEVEL FRAGMENTATION OF DATASET
As we have seen that it is very hard to decide how much
work can be performed by a computing device prior to
computing the function on the same device in a heterogeneous
cloud architecture. So if the load balancer assigns equal
amount of work to all the computing devices this could lead to
higher waiting time from some of the computing devices than
others. Leading to loss of throughput of the whole system. In
more sophisticated systems variable amount of work can also
be assigned to all the computing devices according to their
capabilities, but getting to know this information is not an easy
task. So we propose a system in which the dataset is not
divided in equal number of tasks equal to the number of
computing devices but higher number of datasets elements of
equal or variable size and assigning those small dataset tasks
to each of the computing device. When a computing device
gives the result back new task can be assigned to it at the same
time. So the devices which are slow will not get any new task
to perform when they are busy with their old task but the fast
devices will be given a task as soon as they are finished with
their assigned job.
Example : let us consider we have 3 processing units with
us with different processing capability of 2:3:1 for P1:P2:P3
where P1 is having 2 times processing capability with respect
to P3 and P2 is having 3 times the processing capability with
respect to P3.
Now let us consider that we have a large dataset to be
sorted now this can be done by dividing the dataset into parts
and assigning each dataset to be processed by each processor
and finally merging the results of all datasets. Let in the first
case we divide the dataset into equal parts and assign each
dataset to each processor. But now since processing
capabilities are in the order of P2>P1>P3 so the results of P2
will come very fast but master processing unit will have to
wait for P3 for a long time before it can merge the results. So
throughput of the cloud decreases. See Fig 3.
d1
d2
d3
minimum replay time
maximum replay time
d1
P1
d2
d3
P2
P3
Fig 3. Equal distribution of dataset to all processing units
Now let us consider the case in which the dataset is
divided into different sizes and then assigned to the computing
units for processing. See Fig 4.
d1
d2
d3
equal replay time
from all the processors
d1
d2
d3
P1
P2
P3
Fig. 4. different size distribution of dataset to all processing units
In this case the results from all the computing units will
come at the same time. but the problem with this approach is
that it not easy to determine the dataset size for the processing
unit since clouds are heterogeneous and ever changing. There
are several factors responsible for the computation time of a
processing unit in the real world.
Our approach is dividing the dataset into smaller parts let
us say 6 in this case. See Fig. 5.
The main advantage of using this technique is resource
utilization at the maximum since all the processing units will
be returning their results at almost same time (depends on
level of fragmentation of dataset, higher the fragmentation less
is the difference in response times).
d1
d2
d3
d4
d5
d6
But the disadvantage of using this technique is the
overhead that comes on assigning the jobs since number of job
assignations will be larger in this case.
d6
d5
d4
d1
d2
P1
d3
P2
P3
Fig. 5. More number of dataset elements than the number of
processing units
Now as we can see in Fig. 5. first the dataset is divided
into 6 parts initially d1,d2,d3 are assigned to P1,P2,P3
respectively for processing.
P1
d3
P2
d4
P3
d6
d1
0
1
2
If the heterogeneity of the computing devices in the cloud is
very high this technique can be very useful. Since the devices
with higher processing speeds can be given more number of
dataset elements get process and the devices with lower
processing speed can be given less number of dataset elements to
process. But the ultimate result will be maximum use of the
processing resources. Deciding the dataset element size is a
problem since it should depend upon the minimum processing
speed device in the cloud. If the dataset element size ratio is more
than what can be handled by the minimum speed processing
device it will lead to delay. Higher the number of fragmented
elements less is the difference between the times of responses of
the processing devices, still the size of the dataset element is
required to be set very carefully for optimization.
If the dataset element size is kept very less then it can lead
to large number of job assignments which will lead to
overhead. But if the size is kept too large the minimum speed
processor will take lot of time on its dataset to process it again
leading to poor resource utilization. So the size of the dataset
element should be chosen very carefully.
Advantages of using the suggested model is that it can be
very useful in the highly heterogeneous environments since
calculation of the amount of task that should be distributed to
each device in such environments is not easy. The suggested
model gives a mechanism in which the amount of task that
should be distributed to a particular computing device is
calculated by a threshold value which is the number of tasks in
which the complete task should be divided resulting into a
better efficiency.
d5
d2
Let us assume that time taken by P3 to process a single
dataset (here of equal sizes) is 3 seconds, then time taken by P1
and P2 to process the same amount of data will be 1.5 second and
1 sec respectively. So when processing on d2 is complete by P2 it
can start the processing on d4 and similarly P1 will start
processing d5 on completion of d3 and P2 will process d6 on
completion of processing of d4. And all the results will be
returned back to the master server at the end of 3 seconds.
3
time
Fig. 6. Dataset processing with respect to time in higher
level fragmentation of Dataset
Disadvantage of using this model is in the case of
homogeneous models where almost equal amount of
computation time is taken by all the devices. Here if the task is
divided in more number if tasks then the computation devices
it will lead to an extra overhead of division of tasks as well as
combining the results back to give the consolidated result.
Calculation of the number of subtasks is also a critical because
wrongly divided tasks will also create extra overheads in the
calculation of results.
As a whole we can say that the proposed models works
better for the heterogeneous environments but leads to an extra
overhead as the homogeneity increases.
CONCLUSION
Cloud Computing offers a very large number of
opportunities of using IT infrastructure as a utility with many
possibilities like scaling down and scaling up depending upon
the needs of the organization. However, similar to most rising
technologies cloud computing is also having issues that need
to be resolved. In this paper gave an introduction to cloud
computing then explained the challenges that need to be
focused in the coming future. This document explains Load
Balancing problem as the main problem in this paper, We
have described the problem with a short description. This
paper also contains the description of already available
solutions for the load balancing problem. We saw that with
higher level fragmentation of dataset better resource utilization
can be achieved but this comes with the overhead of more
number of job assignations to take place. But in very high
heterogeneity environment of cloud this technique can be very
useful, when we don't know the capabilities of the computing
devices available to us in the cloud.
[7]
Zhang, Q., Cheng, L., and Boutaba, R., Cloud computing: state-of-theart and research challenges, Journal of Internet Services and
Applications, 2010. 1(1): pp. 7-18.
[8]
Ali Babar, M. and Chauhan,A Tale of Migration to Cloud Computing
for Sharing Experiences and Observations IT University of Copenhagen
Denmark
[9]
Bicer, T., Chiu, D., Agrawal, G., Time and Cost Sensitive DataIntensive Computing on Hybrid Clouds Ohio State University, 2012
12th IEEE/ACM International Symposium on Cluster, Cloud and Grid
Computing
[10] Singh A., Korupolu M. and Mohapatra D. (2008) ACM/IEEE
conference on Supercomputing.
[11] Stanojevic R. and Shorten R. (2009) IEEE ICC, 1-6.
[12] Zhao Y. and Huang W. (2009) 5th International Joint Confer-ence on
INC, IMS and IDC, 170-175.
[13] Nae V., Prodan R. and Fahringer T. (2010) 11th IEEE/ACM
International Conference on Grid Computing (Grid), 9-17.
[14] Hu J., Gu J., Sun G. and Zhao T. (2010) 3rd International Symposium on
Parallel Architectures, Algorithms and Pro-gramming, 89-96.
[15] Bhadani A. and Chaudhary S. (2010) 3rd Annual ACM Banga-lore
Conference.
[16] Liu H., Liu S., Meng X., Yang C. and Zhang Y. (2010) Interna-tional
Conference on Service Sciences (ICSS), 257-262.
References
[1]
Ali Babar, M. and Chauhan, A., Toward a Framework for Migrating
Software Systems to Cloud Computing, Tech Report TR-2011-139, IT
University of Copenhagen, Denmark, 2011.
[2]
Armbrust, M., et al., A View of Cloud Computing, Communication of
ACM, 2010. 53(4): pp. 50-58.
[3]
Baiardi, F. and Sgandurra, D., Secuing a Community Cloud, in IEEE
30th International Conference on Distributed Computing Systems
Workshops. 2010, IEEE Computer Society. pp. 32-41
[4]
Khajeh-Hosseini A, Greenwood D, and 2010., S.I., Cloud Migration: A
Case Study of Migrating an Enterprise IT System to IaaS, in IEEE 3rd
International Conference on Cloud Computing. 2010, IEEE Computer
Society: Miami, USA. pp. 450-457
[5]
[6]
Khajeh-Hosseini A, Greenwood D, and 2010., S.I., Cloud Migration: A
Case Study of Migrating an Enterprise IT System to IaaS, in IEEE 3rd
International Conference on Cloud Computing. 2010, IEEE Computer
Society: Miami, USA. pp. 450-457
Strowd, D.H. and Lewis, G., T-Check in System-of-Systems
Technologies: Cloud Computing, Tech Report CMU/SEI-2010-TN-009,
Softwar Engineering Institute, Carnegie Mellon University, 2009.
[17] Fang Y., Wang F. and Ge J. (2010) Lecture Notes in Comput-er Science,
6318, 271-277.
[18] Randles M., Lamb D. and Taleb-Bendiab A. (2010) 24th Inter-national
Conference on Advanced Information Networking and Applications
Workshops, 551-556.
[19] Zhang Z. and Zhang X. (2010) 2nd International Conference on
Industrial Mechatronics and Automation, 240-243.
[20] Wang S., Yan K., Liao W. and Wang S. (2010) 3rd Internation-al
Conference on Computer Science and Information Technol-ogy, 108113.
[21] Mehta H., Kanungo P. and Chandwani M. (2011) International
Conference Workshop on Emerging Trends in Technology, 370-375.
[22] Nakai A.M., Madeira E. and Buzato L.E. (2011) 5th Latin-American
Symposium on Dependable Computing, 156-165.
[23] Lua Y., Xiea Q., Kliotb G., Gellerb A., Larusb J. R. and Green-ber A.
(2011) Int. Journal on Performance evaluation.
[24] Liu Xi., Pan Lei., Wang Chong-Jun. and Xie Jun-Yuan. (2011) 3rd
International Workshop on Intelligent Systems and Appli-cations, 1-4.
[25] Armbrust M., Fox A., Griffith R., Joseph A. D., Katz R., Kon-winski A.,
Lee G., Patterson D., Rabkin A., Stoica I. and Zaha-ria M. (2009) Above
the Clouds: A Berkeley View of Cloud Computing, EECS Department,
University of California, 1-23.
[26] Pallis G. (2010) IEEE J. of Internet Computing, 14(5), 70-73.
Download