Re: LoadBalancing & FailOver

GĂ©rard BUNEL <[email protected]> Mon, 10 Apr 2006 08:56:46 +0200
Newsgroups gmane.comp.corba.orbacus
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============38389060540631448==
Content-Type: multipart/alternative;
 boundary="------------090601020900030502010803"

This is a multi-part message in MIME format.
--------------090601020900030502010803
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by ooc.nf.ca id EAA10085

David Weir a =E9crit :
> Hello Gerard,
>
> On Fri, Apr 07, 2006 at 02:11:34PM +0200, G=E9rard BUNEL wrote:
>  =20
>> Ok Neil, but I need urgent answers to technical questions.
>>
>> I'm currently architecturing a system which requires High availability=
=20
>> features.
>> So that's why my questions targeted Load Balancing and Fault Tolerance.
>>
>> The scheme is as:
>>     I've 2 redunded servers (machines). Each one hosting a LoadBalance=
r.
>>     Each LoadBalancer manages a group a 2 machines hosting the real=20
>> CORBA server.
>>
>>     So my understanding was:
>>        I can handle redundancy by the use of multiple profiles. The IO=
Rs=20
>> used by the clients should target the 2 LoadBalanced groups with merge=
d=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. =
Am=20
>> I right ?
>>    =20
>
> 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. Onc=
e
> this happens, it will go through the list of profiles until it finds on=
e
> for which a connection can be established.
>
>  =20
>> If ok, how could I be notified of the first LoadBalancer crash ?
>>    =20
>
> 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 t=
o
> contact the second server. There is no opportunity (or hook) in the cod=
e
> to allow the application to be notified of this initial failure.
>
>  =20
>> 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 ?
>>    =20
>
> 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 reques=
t
> 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 you=
r
> 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.
>  =20
Are you talking about mutliple profiles or about LoadBalancing in this=20
case ?

>  =20
>> Gerard
>>    =20
>
> Cheers,
> Dave
>
>  =20


--------------090601020900030502010803
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
David Weir a &eacute;crit&nbsp;:
<blockquote cite="[email protected]" type="cite">
  <pre wrap="">Hello Gerard,

On Fri, Apr 07, 2006 at 02:11:34PM +0200, G&eacute;rard BUNEL wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Ok Neil, but I need urgent answers to technical questions.

I'm currently architecturing a system which requires High availability 
features.
So that's why my questions targeted Load Balancing and Fault Tolerance.

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 
CORBA server.

    So my understanding was:
       I can handle redundancy by the use of multiple profiles. The IORs 
used by the clients should target the 2 LoadBalanced groups with merged 
IORs.
       So that if the main LoadBalancer crashes, the second one could 
render the service by dispatching requests on its 2 balanced servers. Am 
I right ?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
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.

  </pre>
  <blockquote type="cite">
    <pre wrap="">If ok, how could I be notified of the first LoadBalancer crash ?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
There is no notification as such. Once it is determined that the server 
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.

  </pre>
  <blockquote type="cite">
    <pre wrap="">In the LoadBalanced group, what happens if one of the loadbalanced 
server crashes. Is it discarded from the group ? Will it be tried 
forever ? Can I be notified of its failed status ?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Once a profile is found not to work, the client ORB will discard this 
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. 

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 
failure.
  </pre>
</blockquote>
Are you talking about mutliple profiles or about LoadBalancing in this
case ?<br>
<br>
<blockquote cite="[email protected]" type="cite">
  <pre wrap="">
  </pre>
  <blockquote type="cite">
    <pre wrap="">Gerard
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Cheers,
Dave

  </pre>
</blockquote>
<br>
</body>
</html>

--------------090601020900030502010803--

--===============38389060540631448==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0

_______________________________________________
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

--===============38389060540631448==--