Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Zookeeper, mail # dev - zookeeper_interest returning ZOK on Connection Loss


Copy link to this message
-
Re: zookeeper_interest returning ZOK on Connection Loss
Yunong Xiao 2012-11-14, 01:08
Michi --

On Nov 5, 2012, at 11:24 PM, Michi Mutsuzaki <[EMAIL PROTECTED]> wrote:

> On Mon, Nov 5, 2012 at 2:16 PM, Yunong Xiao <[EMAIL PROTECTED]> wrote:
>> What happens if the server is offline? In the scenario you described, select()
>> will never succeed, and zookeeper_interest() will never inform the upstream
>> consumer that the server is down. That's the crux of the problem here, when the
>> server is unavailable, the client needs to know after some amount of time that
>> the connection has failed. Otherwise the upstream consumer has no idea the
>> connection to zookeeper has been severed and will hang indefinitely.
>
> If the server is offline, zookeeper client keeps trying to connect to
> the server indefinitely. It's up to the caller to decide when to give
> up. One possibility is to poll the connection state using zoo_state()
> and give up on the handle if it doesn't become connected after certain
> time.

I certainly don't disagree here. What you're suggesting makes sense here -- indeed my patch does a variation of this -- however, it relies on the consuming client to keep track of the time since the client was last connected to the server. I dare say it'd be more preferable for zookeeper.c to keep track of this time internally, and inform the consuming client when this time has exceeded a certain threshold, such as session_timeout. The consuming client can then decide to give up. It seems like common functionality that all consumers would like to have as part of using the C client.