Lehrstuhl für Rechnertechnik und Rechnerorganisation


Home

Research

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.


       

Dr. Markus Lindermeier29 Jun 01