The Design and Performance of an Adaptive CORBA Load Balancing Service

CORBA is increasingly popular as distributed object computing middleware for systems with stringent quality of service (QoS) requirements, including scalability and dependability. One way to improve the scalability and dependability of CORBA-based applications is to balance system processing load among multiple server hosts. Load balancing can help improve system scalability by ensuring that client application requests are distributed and processed equitably across a group of servers. Likewise, it can help improve system dependability by adapting dynamically to system configuration changes that arise from hardware or software failures. This paper presents four contributions to research on CORBA-based load balancing. First, we describe deficiencies with common load-balancing techniques, such as introducing unnecessary overhead or not adapting dynamically to changing load conditions. Second, we present a novel adaptive load balancing service that can be implemented efficiently using standard CORBA features. Third, we describe the key design challenges we faced when adding this load balancing service to our CORBA ORB (TAO) and outline how we resolved the challenges by applying patterns. Finally, we present the results of benchmark experiments that evaluate the pros and cons of different load balancing strategies empirically by measuring the overhead of each strategy and showing how well each strategy balances system load.

[1]  Douglas C. Schmidt,et al.  The design and performance of a real-time CORBA event service , 1997, OOPSLA '97.

[2]  Priya Narasimhan,et al.  A fault tolerance framework for CORBA , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[3]  Carlos O'Ryan,et al.  The Design and Performance of a Pluggable Protocols Framework for Real-Time Distributed Object Computing Middleware , 2000, Middleware.

[4]  Aniruddha S. Gokhale,et al.  DOORS: towards high-performance fault tolerant CORBA , 2000, Proceedings DOA'00. International Symposium on Distributed Objects and Applications.

[5]  Binoy Ravindran,et al.  DeSiDeRaTa: QoS Management Technology for Dynamic, Scalable, Dependable, Real-Time Systems , 1998 .

[6]  P. Merkey,et al.  Beowulf: harnessing the power of parallelism in a pile-of-PCs , 1997, 1997 IEEE Aerospace Conference.

[7]  Douglas C. Schmidt,et al.  The Design and Performance of a Scalable ORB Architecture for CORBA Asynchronous Messaging , 2000, Middleware.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Chorus Systemes,et al.  Overview of the CHORUS? Distributed Operating Systems , 1991 .

[10]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[11]  Markus Lindermeier Load management for distributed object-oriented environments , 2000, Proceedings DOA'00. International Symposium on Distributed Objects and Applications.

[12]  Seán Baker CORBA distributed objects - using ORBIX , 1997 .

[13]  Steve Vinoski,et al.  Advanced CORBA® Programming with C++ , 1999 .

[14]  Hong Va Leong,et al.  An extended CORBA event service with support for load balancing and fault-tolerance , 2000, Proceedings DOA'00. International Symposium on Distributed Objects and Applications.

[15]  John Zolnowsky,et al.  Realtime Scheduling in SunOS 5.0 , 1992 .

[16]  Douglas C. Schmidt,et al.  Usenix Conference on Object-oriented Technologies and Systems (coots '01) the Design and Performance of Meta-programming Mechanisms for Object Request Broker Middleware , 2022 .

[17]  Eric Eide,et al.  Flick: a flexible, optimizing IDL compiler , 1997, PLDI '97.

[18]  Douglas C. Schmidt,et al.  The design and performance of a real-time I/O subsystem , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[19]  Michi Henning Binding, migration, and scalability in CORBA , 1998, CACM.

[20]  Aniruddha S. Gokhale,et al.  Using principle patterns to optimize real-time ORBs , 2000, IEEE Concurr..

[21]  Samuel T. Chanson,et al.  Improved Strategies for Dynamic Load Balancing , 1999, IEEE Concurr..

[22]  Douglas C. Schmidt,et al.  Applying patterns to develop extensible ORB middleware , 1999, IEEE Commun. Mag..

[23]  A. Gokhale,et al.  Measuring the performance of communication middleware on high-speed networks , 1996, SIGCOMM '96.

[24]  Fred Douglis,et al.  Process Migration in the Sprite Operating System , 1987, ICDCS.

[25]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[26]  Aniruddha S. Gokhale,et al.  Applying Patterns to Improve the Performance of Fault Tolerant CORBA , 2000, HiPC.