[ 
https://issues.apache.org/jira/browse/KUDU-1788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jean-Daniel Cryans updated KUDU-1788:
-------------------------------------
    Target Version/s: 1.6.0  (was: 1.5.0)

> Raft UpdateConsensus retry behavior on timeout is counter-productive
> --------------------------------------------------------------------
>
>                 Key: KUDU-1788
>                 URL: https://issues.apache.org/jira/browse/KUDU-1788
>             Project: Kudu
>          Issue Type: Bug
>          Components: consensus
>    Affects Versions: 1.1.0
>            Reporter: Todd Lipcon
>            Priority: Critical
>
> In a stress test, I've seen the following counter-productive behavior:
> - a leader is trying to send operations to a replica (eg a 10MB batch)
> - the network is constrained due to other activity, so sending 10MB may take 
> >1sec
> - the request times out on the client side, likely while it was still in the 
> process of sending the batch
> - when the server receives it, it is likely to have timed out while waiting 
> in the queue. Or ,it will receive it and upon processing will all be 
> duplicate ops from the previous attempt
> - the client has no idea whether the server received it or not, and thus 
> keeps retrying the same batch (triggering the same timeout)
> This tends to be a "sticky"/cascading sort of state: after one such timeout, 
> the follower will be lagging behind more, and the next batch will be larger 
> (up to the configured max batch size). The client neither backs off nor 
> increases its timeout, so it will basically just keep the network pipe full 
> of useless redundant updates



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to