Re: LoadBalancing & FailOver

David Weir <[email protected]> Fri, 7 Apr 2006 14:15:03 -0230
Newsgroups gmane.comp.corba.orbacus
Organization Object Oriented Concepts, Inc. - An IONA Company
Message-ID <[email protected]>
Hello Gerard,

On Fri, Apr 07, 2006 at 02:11:34PM +0200, G=E9rard BUNEL wrote:
> Ok Neil, but I need urgent answers to technical questions.
>=20
> I'm currently architecturing a system which requires High availability=20
> features.
> So that's why my questions targeted Load Balancing and Fault Tolerance.
>=20
> The scheme is as:
>     I've 2 redunded servers (machines). Each one hosting a LoadBalancer.
>     Each LoadBalancer manages a group a 2 machines hosting the real=20
> CORBA server.
>=20
>     So my understanding was:
>        I can handle redundancy by the use of multiple profiles. The IOR=
s=20
> used by the clients should target the 2 LoadBalanced groups with merged=
=20
> IORs.
>        So that if the main LoadBalancer crashes, the second one could=20
> render the service by dispatching requests on its 2 balanced servers. A=
m=20
> I right ?

An important thing to remember here is that the client ORB will only
skip a profile if a connection cannot be established to the server. Once
this happens, it will go through the list of profiles until it finds one
for which a connection can be established.

> If ok, how could I be notified of the first LoadBalancer crash ?

There is no notification as such. Once it is determined that the server=20
described by the first IOR profile is not running, it simply attempts to
contact the second server. There is no opportunity (or hook) in the code
to allow the application to be notified of this initial failure.

> In the LoadBalanced group, what happens if one of the loadbalanced=20
> server crashes. Is it discarded from the group ? Will it be tried=20
> forever ? Can I be notified of its failed status ?

Once a profile is found not to work, the client ORB will discard this=20
from its list of profiles. Any subsequent requests to that CORBA object
will not attempt to contact the first server, unless all of the
profiles fail. In this case, an exception is thrown and the next request
will actualy cause the list to be repopulated from the initial IOR.=20

To acheive the level of fault tolerance that you are looking for, you
would have to make some modifications at your application level. Since
there is no way to be notified of an individual server failure when
using a multi-profile IOR, a better approach may be for you to have your
client try to contact each server separately (using single profile
IORs), and switch from one to the other when you explicitly detect a=20
failure.

> Gerard

Cheers,
Dave

--=20
David Weir                         =20
Team Orbacus - Your CORBA Source
E-Mail: [email protected]
WWW: http://www.orbacus.com
_______________________________________________
OB-Users Mailing List - [email protected]
http://mail.ooc.nf.ca/mailman/listinfo/ob-users
Visit our support FAQ before you send a message.
http://www.orbacus.com/faq/support.html