[ 
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)

Reply via email to