[
https://issues.apache.org/jira/browse/ZOOKEEPER-906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923109#action_12923109
]
Radu Marin commented on ZOOKEEPER-906:
--------------------------------------
@Jared Cantwell:
Yes you got it right. The last_connect_index is intended to detect a complete
unsuccessful loop through all hosts so the client can delay more (for
max_reconnect_delay period).
It also represents the index of the last successful host connection, and indeed
it was not updated on connection establishement.
I have fixed that in the new patch. Huge thanks for reviewing and pointing that
out!
> Improve C client connection reliability by making it sleep between reconnect
> attempts as in Java Client
> -------------------------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-906
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-906
> Project: Zookeeper
> Issue Type: Improvement
> Components: c client
> Affects Versions: 3.3.1
> Reporter: Radu Marin
> Assignee: Radu Marin
> Fix For: 3.4.0
>
> Attachments: ZOOKEEPER-906.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> Currently, when a C client get disconnected, it retries a couple of hosts
> (not all) with no delay between attempts and then if it doesn't succeed it
> sleeps for 1/3 session expiration timeout period before trying again.
> In the worst case the disconnect event can occur after 2/3 of session
> expiration timeout has past, and sleeping for even more 1/3 session timeout
> will cause a session loss in most of the times.
> A better approach is to check all hosts but with random delay between
> reconnect attempts. Also the delay must be independent of session timeout so
> if we increase the session timeout we also increase the number of available
> attempts.
> This improvement covers the case when the C client experiences network
> problems for a short period of time and is not able to reach any zookeeper
> hosts.
> Java client already uses this logic and works very good.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.