The objectives of designing load balancing algorithms are to ensure that no server is overloaded

either in capacity or in performance requirements. These algorithms are divided into two

categories depending upon their knowledge base they use during taking the decision about

service requests as appeared from the clients.

If a load balancing algorithm, executing on the load balancer at front-end node make

decision about distributing the load without knowing any details about the requests, it is called

class-agnostic load balancing algorithm. They are named so, since they remains agnostic or

unsure to the nature of the request. This means that the algorithm acts without any information

about the type of service request or the type of client from where the request was raised.

Class-agnostic load balancing algorithms make decisions without considering the nature and

source of incoming requests.

The other category of load balancing algorithm is called class-aware load balancing algorithm.

This category of algorithms makes decisions with knowledge base about the nature and source

of the service requests. The load balancer at front-end node then distributes service requests to

appropriate back-end nodes for further processing.

Class-agnostic load balancing algorithm are simpler to design and implement. But class

aware algorithms have many advantages and are more suitable for balancing loads in critical

environment like cloud computing. Depending upon awareness about received content, the

class-aware algorithms can be classified in two categories. When it uses knowledge about the

content type of service requests, it is called content-aware load balancing algorithm. When

knowledge about content source (that is clients) is used in load distribution, those algorithms

are known as client-aware load balancing algorithmOften, some of the clients may request for service or content in common than others.

Assigning those similar types of requests received from different clients to the same (or same set

of) back-end-servers minimize the need of redundant processing at different server locations.

This not only decreases capacity requirements but also improves performance since content

can be accessed for a single storage location. In a constrained environment, this can make the

difference between meeting the capacity constraints and overflowing the system.

Content-aware load balancer can redirect similar kind of incoming requests to the same back

end-server to avoid duplicate processing.

When the class-aware load balancing algorithm uses knowledge base about clients before

distributing service requests to back-end servers to improve performance of system, they

are called as client-aware. Assigning requests from similar type of clients to some particular

server may often gain significant benefits in load balancing requirements due to the improved

processing performance. In practice, the applications need to maintain a balance between both

the client-aware and content-aware mechanisms.

Checking requests to find out its category is not simple and it needs going through some critical

processing. The potential improvement in system performance through the implementation of

client-aware load balancing technique largely depends on the degree of heterogeneity of the

environment. If the system is almost homogeneous, much could not be gained by implementing

client-aware algorithms, moreover, the overhead of dynamic client checking mechanism may

degrade the performance of the system.

Selection of right load balancer provides opportunity for future flexibility in cloud computing

Template Design © VibeThemes. All rights reserved.