You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Tsz Wo Nicholas Sze (JIRA)" <ji...@apache.org> on 2018/12/09 00:10:00 UTC

[jira] [Commented] (RATIS-453) When retry failed on an async call, it should fails all the following calls in the sliding window

    [ https://issues.apache.org/jira/browse/RATIS-453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16713813#comment-16713813 ] 

Tsz Wo Nicholas Sze commented on RATIS-453:
-------------------------------------------

r453_20181208.patch:
- If an async call failed with RaftRetryFailureException, fail all requests after it.
- The patch also disables all future async calls in that client since all future async calls are out of order.

User application may choose to close and create another client to continue.  However, it the application wants to retry, why not change the retry policy in the first place?

> When retry failed on an async call, it should fails all the following calls in the sliding window
> -------------------------------------------------------------------------------------------------
>
>                 Key: RATIS-453
>                 URL: https://issues.apache.org/jira/browse/RATIS-453
>             Project: Ratis
>          Issue Type: Bug
>          Components: client
>            Reporter: Tsz Wo Nicholas Sze
>            Assignee: Tsz Wo Nicholas Sze
>            Priority: Major
>         Attachments: r453_20181208.patch
>
>
> Suppose client has made more than one async calls and then waits for the replies.  Suppose the leader is not ready or some other transient problem.  The retries on the first async call may fail, the code will set RaftRetryFailureException in the reply.  However, the retries of the following async calls may succeed.  In such case, the call ordering is not guaranteed -- a later call succeeds without delivered an earlier call.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)