Print

Print


Hi Andreas,

If you limit it to a list size of 1 then it would be perfect. Please 
submit the patch.

Andy

On Wed, 8 Jun 2011, Andreas-Joachim Peters wrote:

> Hi Andy,
> the DNS is manipulated to point always to the working machine(machine in
> production).
>
> If we could do it only in the case where the list size = 1, that would be
> perfectly fine and the default case for real load balancing would still be
> like before.
>
> Cheers Andreas.
>
> On Wed, Jun 8, 2011 at 5:02 AM, Andrew Hanushevsky <[log in to unmask]>wrote:
>
>> Hi Andreas,
>>
>> I think the issue here is that the reason the list is not re-translated
>> every time because he client picks (in a random order) through the list when
>> it reconnects. If the DNS returns the list in random order itself (as most
>> do now) then the process may, at best, become ineffecient (i.e., failing
>> hosts being unnecessarily retried) and at worst, never converge.
>>
>> Most larger sites setup a DNS entry with multiple addresses so that they
>> can automatically fail-over this mode of operation. As I look at the code,
>> this process works only if the list of addresses is stable (at least until
>> all of them have been tried once). Hence, that's why the list is translated
>> only once.
>>
>> Three options exist: a) the easy one is to have an option (e.g. envar)
>> control the behaviour with old behaviour being the default, b) only
>> retranslated the list after all entries have been tried (I think this is
>> much harder), and c) retranslate only if the DNS call returned a single
>> entry (don't know if this is really what you are after but it's the safest).
>>
>> I still don't quite understand how retranslating the DNS will allow you to
>> be more fault tolerant unless the DNS knows to return an address that is
>> working when the one it has is not working. Hint?
>>
>> Andy
>>
>>
>> On Wed, 8 Jun 2011, Andreas-Joachim Peters wrote:
>>
>>  Hi,
>>> I have the following request to change some basic behaviour of the xrootd
>>> client code.
>>>
>>> Currently when an XrdClient::Open was issued or XrdClientAdmin::Connect
>>> any
>>> DNS alias is only resolved once in the beginning and then stays forever as
>>> target in the loop which honours the settings for retry/reconnect etc.
>>>
>>> Andy ... are there any objections to change this behaviour and to resolve
>>> the alias again before each retry? I would need that behavour to have an
>>> active/passive failover via DNS alias configured.
>>>
>>> The code change is trivial (two lines inserted).
>>>
>>> Cheers Andreas.
>>>
>>>
>