An Intelligent Load Balancing System

Document Sample
An Intelligent Load Balancing System Powered By Docstoc
					        A Fuzzy Load Distribution System for O-O Distributed
                                                 E. Damiani

                         Università di Milano, Polo Didattico e di Ricerca di Crema

1. Introduction
The past few years have witnessed a tremendous increase of the interest in object-oriented client/server
applications and, in general, in distributed computing. Availability of powerful, low-cost computers and
high-bandwidth communication links, together with recent developments in the area of object-oriented
languages and systems, boosted performance of obiect-oriented distributed execution environments,
where a set of server objects is made available over the network to execute computations on behalf of
remote clients. In such an environment, clients transparently invoke methods of their published network
interfaces, allowing for increased cleanliness and readability in both distributed application design and
implementation, as foreseen in the seminal paper [Rin91].
It is widely recognized that in order to attain fault-tolerance and scalability of such applications, effective
task distribution and load balancing techniques among replicated servers are required. Load balancing is
a time-honored topic of system architecture research, and many techniques have been proposed so far,
including straightforward approaches such as random, shortest-queue first and prioritized round robin
algorithms. Fuzzy formulations of these conventional scheduling algorithms have recently been explored
with encouraging results [Lab98], while a more general fuzzy approach is proposed in [Sod99].
However, most load balancing approaches described in the literature have been proposed in the
framework of symmetric multiprocessor environments or connection-oriented distributed architectures
[Set97] and are being accurately revised before they can be effectively applied in the framework of a
distributed object-oriented environment.
In this paper we follow a different, line of research, proposing a transparent fuzzy control of the choice
among replicated obiect-oriented servers to be executed by a naming service. Such a server takes into
account the performance indexes of the machines hosting the server objects and the possible fluctuations
in the quality of service of the network links among them. Whenever a client objects ask the naming
service to translate a server's name into the network address of the server object, the fuzzy control unit is
used to provide to the client the identifier of the "best server" currently available w.r.t to its
computational load and network connection. We call this approach load distribution, rather than load
balancing, as our approach can easily be generalized to other choice criteria, in the line of [Dam97].

2. A Fuzzy Load Distribution Technique for Distributed Objects

Our approach is aimed at effectively distributing computational load among a pool of replicated, stateless
servers, all known to clients with the same name. We consider a set of distributed services,
={S1,S2,...,Si,...,Sn} and a set of servants associated to each service; the set of servants associated to S i
will be denoted as i={s1,s2,...,sj,...,sm}. Such servants will be dynamically classified by our name server
in four service classes. Classification is made applying a fuzzy-rule set based of the following linguistic
variables, defined for each servant:
1. Network Load whose universe set is based on the average round trip time from the name service to the
   servant, normalized using the maximum norm to coincide with the interval [0,1]
2. Residual Computational Power whose universe set is based on the standard SPEC performance index
   of raw computational power, again normalized to coincide with [0,1]

Each of the above fuzzy linguistic variables has three fuzzy elements, namely low, medium and high. The
network load fuzzy elements' membership functions can be rather straightforwardly initialized, and then
periodically updated during the name service operation based on real-time measurements of round trip
from the name server to servants. Here, we consider such a round trip as a rough evaluation of the quality
of the network links to which a servant is connected. Of course, such an evaluation can turn out to be
inaccurate in some cases, but conventional placement of naming service as part of the core of a
distributed system will usually guarantee acceptable estimates. Typical values (before normalization) for
Network Load angular points on a local area network are low=(0,150,200), medium=(100,150,250,300)
and high=(200,250).
The definition of the residual power linguistic variable is indeed less straightforward. In fact, the residual
computational power of a servant is classically defined as follows [Bab94]:

RP(sj)=SPEC(sj)/(numcli(Si,sj)+1)                      (1)

Where, obviously, SPEC is the static performance index of the machine hosting the servant, and
numcli(Si,sj) is the number of clients currently being serviced on servant sj for service Si. The
computation of such a parameter is classically made either analytically using queue theory or by
simulation; but this would require in our case many additional hypotheses on service time distribution,
degree of concurrency allowed by servants and so on. Thus, we rely on a much rougher fuzzy estimate.
Namely, we use a trapezoidal fuzzy number [Mor98] initialized to 0 to estimate numcli, to be (fuzzily)
incremented by one whenever a client requires the services and then decremented when the same client
makes another request or, automatically, after a (crisp) time-to-live.
This policy is aimed at taking into account "normal" behaviour of distributed clients, consisting of
prevalent serialization of service requests, while allowing for some flexibility in the estimate due to a
certain degree of parallelism. Using standard fuzzy arithmetic, equation (1) is then used to compute
Residual Power as a level-two fuzzy set [Kos87], i.e. to compute a set of fuzzy membership values for
each value of the universe, namely the SPEC index. Of course, this computation is only carried out for a
small set of sample SPEC values in the interval [0,1], obtaining five fuzzy values for each of the three
ranges [0, 0.33], [0.33, 0.66], [0.66, 1].
Finally, these fifteen values are defuzzified to obtain three flattened level-one fuzzy sets of five elements
each, to be linearly interpolated and used as fuzzy elements of the Residual Power linguistic variable.
The output variable is the fuzzy availability of servants, whose universe set, called classes, is an integer
interval from 0 to 4. The resulting rule set, based on expert interview (or, rather, on common sense) is
reported in the following table:

RP/NL                   L                      M                        H
L                       M                      M                        L
M                       H                      M                        L
H                       H                      H                        M
                                Tab.1 A rule set for fuzzy load distribution

The operation of the fuzzy load distribution unit can now be sketched as follows:
1. Whenever a client requires to the naming service the translation between a service name and the
   network identifier for a suitable servant, the naming services computes availability for all servants
   associated to that service.
2. Then, it defuzzifies servants' availability to crisp class values and uses the resulting classes as the
   priority classes of a conventional prioritized round robin algorithm.

3. References

[Bab94]        O. Babaoglu, L. Alvisi, A. Amoroso, R. Davoli, Mapping Parallel Computations to a
               Distributed System in Paralex, Tech. Report, Dept. of Computer Science, University of
               Bologna, 1994.
[Dam97]        E. Damiani, M.G. Fugini, "Fuzzy Identification of Distributed Components'', in
               B.Reusch, ed., Proc. of the 5th Fuzzy Days Intl. Conf., Dortmund, Germany, 1997, LNCS
[Kos87]        B. Kosko, "Foundations of Fuzzy Estimation Theory", UMI, Ann Arbor 1987
[Lab98]        J. Labarta, M. Litoiu, T. Ionescu "Dynamic Task Scheduling in Distributed Real Time
               Syetms Using Fuzzy Rules", Microprocessors and Microsystems, vol. 6(4), 1998
[Mor98]        J. Mordeson, P. Nair, "Fuzzy Mathematics", Physica-Verlag, 1998
[Rin91]        D. Rine, "Design of Fuzzy Object-Oriented Software Components Databases",
               Cybernetics and Systems, vol. 22, 1991.
[Set97]        S. Setia, V. Najik, M. Squillante "Processor allocation in Multiprogrammed
               Distributed-Memory Parallel Archietctures", Journal of Parallel and Distributed
               Computing, vol. 3(5), 1997
[Sod99]        A. Sodan, V. Torra "Hierarchical Fuzzy Configuration of Implementation Strategies",
               Proceedings of the ACM Symp. of Appl. Comp. (SAC'99), San Antonio, TX, 1999

Shared By: