[
https://issues.apache.org/jira/browse/CURATOR-544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zili Chen updated CURATOR-544:
------------------------------
Description:
[https://lists.apache.org/x/thread.html/2549c310c1e3232d2f746bf1cf7110c094ea2ca9d1e54b34b75a508f@%3Cuser.curator.apache.org%3E]
Currently Curator will always reset on session expire and instance a new ZK
client as well as recover state.
Because on session expire ephemeral znodes get deleted, some of user cases
possibly want to manually handle session expire before automatically reset
{{o.a.c.ConnectionState}}.
-I propose implement a {{SessionConnectionHandlingPolicy}} whose
{{callWithRetry}} use {{SessionFailRetryLoop}} so that
{{o.a.c.ConnectionState}} fails on session expired.-
-BTW, it would be a user-friendly way to make user of {{SessionFailRetryLoop}}.-
I volunteer to work on an implementation.
What do you think?
CC [~randgalt]
As time goes by, we change a bit what API looks like. For implement the same
functionality, we change code of RetryPolicy instead. To be brief, we (1) move
{{RetryLook.isRetriableException}} to {{RetryPolicy#allowRetry(Exception)}} and
existing impls have a default impl that keeps the manner (2) impl a
{{SessionFailedRetryPolicy}} that throws when {{SessionExipredException}}
tested, while the other examination delegated to another policy.
was:
https://lists.apache.org/x/thread.html/2549c310c1e3232d2f746bf1cf7110c094ea2ca9d1e54b34b75a508f@%3Cuser.curator.apache.org%3E
Currently Curator will always reset on session expire and instance a new ZK
client as well as recover state.
Because on session expire ephemeral znodes get deleted, some of user cases
possibly want to manually handle session expire before automatically reset
{{o.a.c.ConnectionState}}.
I propose implement a {{SessionConnectionHandlingPolicy}} whose
{{callWithRetry}} use {{SessionFailRetryLoop}} so that
{{o.a.c.ConnectionState}} fails on session expired.
BTW, it would be a user-friendly way to make user of {{SessionFailRetryLoop}}.
I volunteer to work on an implementation.
What do you think?
CC [~randgalt]
> Implement SessionFailedRetryPolicy
> ----------------------------------
>
> Key: CURATOR-544
> URL: https://issues.apache.org/jira/browse/CURATOR-544
> Project: Apache Curator
> Issue Type: New Feature
> Components: Client
> Reporter: Zili Chen
> Priority: Major
>
> [https://lists.apache.org/x/thread.html/2549c310c1e3232d2f746bf1cf7110c094ea2ca9d1e54b34b75a508f@%3Cuser.curator.apache.org%3E]
> Currently Curator will always reset on session expire and instance a new ZK
> client as well as recover state.
> Because on session expire ephemeral znodes get deleted, some of user cases
> possibly want to manually handle session expire before automatically reset
> {{o.a.c.ConnectionState}}.
> -I propose implement a {{SessionConnectionHandlingPolicy}} whose
> {{callWithRetry}} use {{SessionFailRetryLoop}} so that
> {{o.a.c.ConnectionState}} fails on session expired.-
> -BTW, it would be a user-friendly way to make user of
> {{SessionFailRetryLoop}}.-
> I volunteer to work on an implementation.
> What do you think?
> CC [~randgalt]
> As time goes by, we change a bit what API looks like. For implement the same
> functionality, we change code of RetryPolicy instead. To be brief, we (1)
> move {{RetryLook.isRetriableException}} to
> {{RetryPolicy#allowRetry(Exception)}} and existing impls have a default impl
> that keeps the manner (2) impl a {{SessionFailedRetryPolicy}} that throws
> when {{SessionExipredException}} tested, while the other examination
> delegated to another policy.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)