PhDOOS Logo

Supported by AITO.

These pages are currently maintained by Alex Potanin

 

Load Management in Distributed Object Computing Systems

Hermes Senger
( Brazilian )

University of Sao Paulo
Escola Politécnica da Universidade de São Paulo Av. Prof. Luciano Gualberto, trav. 3, n. 180 Sala C2-18 - Cid. Universitária São Paulo, SP - Brazil
tel: +55-11-3818-5617
fax: +55-11-3818-5294
hermes@pcs.usp.br

Keywords:

distribution frameworks load management load balancing

Abstract:

Real business and industry applications have become very large and even more complex, being partitioned into objects which may be placed either in a single host, a set of hosts, or distributed worldwide. In this scenario, automatic load management facilities becomes necessary.

In distributed processing environments, many factors can lead to load imbalance and loss of performance. The heterogeneity imposes some additional complexity. Furthermore, as real applications may be constituted of a large number of interacting objects, load imbalance may cause a cumulative delay in the waiting time for the requested services.

Objects implement services by means of methods, and usually serve to multiple applications simultaneously. So, the physical placement of a given service object may affect several client applications. Furthermore, objects may receive different types of workload with conflicting characteristics.

In the past, load management was treated in the field of distributed operating systems, usually mapping processes to nodes. However, in distributed object computing systems, objects are the basic building block, being the natural candidate to be the load unit. In the opposite, the processes are not appropriate, because of their coarse granularity.

The proposed strategy supports load management in two levels. At the request level, each service may be implemented by two or more instances of the same service object. This only can be applied for objects whose state does not change when its methods are invoked. These objects are so called replication safe. At this level, the load management service may assign requests statically or dynamically. In the static mode, the requests a client issues for a given service are always forwarded to the same server. In the dynamical mode, each request may be forwarded to a different server through smart proxies. In addition, load management is also performed at object level, when instances are created.

Load imbalance may happen in two ways. An object instance may become overloaded if its request queue increases above a given threshold. In this case, replication may be tried. Load imbalance may also occur at host level, because hosts are frequently shared by other applications, by daemon processes, or interactive jobs owned by local users. In this case, the algorithm may use replication or migration. Replication is tried first, because migration is more expensive.

Another question is where to integrate the load management mechanism: at the application level, at system level, or at service level. The system level approach offers transparency to the user. However, it may interfere in the system internals. The service level approach may solve the problem without conflicting with existing components of the system, but requires some level of knowledge from the programmer. This additional acknowledge, however, may be hidden by using tools for automatic generation of application components.

We proposed a load management strategy for distributed object systems, integrated at service level, according to the above design principles. It is implemented over the Java/RMI platform, in a distributed way in order to be scalable. The proposed model, however, is valid for other architectures such as CORBA and DCOM.

The PhD work started: September, 1997


The submitted work will probably not be presented in the
upcoming ECOOP PhD Workshop.


HTML3
JAVA

 


Last modified on Mon Aug 15 14:59:24 2005