| |

HomeResearch
Publications
Teaching
Absence
|
|
|
Research:
Load Management for Distributed Object-Oriented
Environments
As the complexity
of applications has increased, new software engineering
methods like the object-oriented programming paradigm
were introduced. Applications were split into interacting
objects. The next step was the globalization of the
application logic. Global interaction of application
objects became very important. Nowadays applications do
not reside on a single host anymore - they are
distributed all over the world and interact through well
defined protocols. Global interaction is accomplished by
so called middleware architectures. The most common
middleware architectures for distributed object-oriented
applications are the Common Object Request Broker
Architecture (CORBA) and the Distributed Component Object
Model (DCOM). Environments like CORBA and DCOM cause new
problems because of their distribution. A significant
problem is load imbalance. As application objects are
distributed over multiple hosts, the slowest host
determines the overall performance of an application.
Load management services try to compensate load imbalance
by distributing workload.
Our load management concept uses objects as load
distribution entities and hosts as load distribution
tragets. Workload ist distributed by initial placement,
migration, and replication.
- Initial
Placement stands for the creation of an
object on a host that has enough computing
resources in order to efficiently execute the
object.
- Migration
means the movement of an existing object to
another host that promises a more efficient
execution.
- Replication
is similar to migration but the original object
is not removed, so some identical objects called
replicas are created. Further requests to the
object are divided up among its replicas in order
to distribute workload (requests) among the
replicas.
There are two
kinds of overload in distributed object-oriented systems
- background overload and request overload. Background
load comes from applications that are not controlled by
the load management system. Request overload means that
an object is not capable to efficiently process all the
requests it receives. Migration is an adequate technique
to deal with background load but the scalability reached
by migration is limited. Replication helps to break this
limitations and is an adequate technique to deal with
request overload.
Our load management system is split into three
components: The load monitoring, the load distribution,
and the load evaluation component. They fulfill different
tasks and work at different abstraction levels. The load
monitoring component provides both, information on
available computing resources and their utilization, and
information on application objects and their resource
usage. This information has to be provided dynamically,
i.e. at runtime, in order to obtain knowledge about the
runtime environment and its objects. Load distribution
provides the functionality for distributing workload by
initial placement, migration, or replication of objects.
Finally, the load evaluation component makes decisions
about load distribution based on the information provided
by load monitoring. The decisions can be reached by a
variety of strategies.
We implemented these concepts in the LMC
(Load Managed CORBA) system. LMC is a load management
system for the Common Request Broker Architecture
(CORBA). The load monitoring
component is realized by the Simple Network Management
Protocol (SNMP). SNMP is a well established standard in
network management which provides flexible, extensible,
and system independent access to host and network
resources. Load distribution is integrated into the ORB
(Object Request Broker) and the POA (Portable Object
Adapter). We added some policies and interfaces to the
POA in order to enable object migration and replication.
The load evaluation component controls the load
management system. It provides object creation and
initial placement, gathers load information from the load
monitoring component, and performs object migration and
replication, using the load distribution component. The
load evaluation component resides at the Implementation
Repository which is a centralized service for an ORB
domain.
In order to evaluate the efficiency of the LMC system, a
test case is shown. The hardware consists of three
machines with equal configuration. There is no background
load on the machines. The examined CORBA application is a
simple server object with two clients that permanently
request the server. The server on its part performs some
computation, returns the result, and processes the next
request. The figure on the right shows the request rate
of each client against the time. At the beginning, one
server object is created and placed on a machine (initial
placement). The clients start requesting the server and
the request rate immediately increases. Both clients have
the same request rate now because the server alternately
processes their requests. After a while the load
management system recognizes that the server is
overloaded because both clients permanently request the
server. Accordingly, replication is performed, i.e. a
second server object (replica) is created and each client
gets a replica on its own. In consequence of the
replication, each client doubles its request rate. Some
time later background processor load is generated on the
machine that is used by the second client's replica.
Hence, the request rate of the second client
substantially decreases. Again, the load management
system recognizes the processor overload and migrates the
affected replica to the third machine which was not used
so far. The consequence is that the request rate returns
to its normal level.
Please have a look at the publications for a more detailed
description of this work.
|