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

Ivan Bessonov updated IGNITE-25025:
-----------------------------------
    Reviewer: Roman Puchkovskiy

> Accumulate retry reasons in RetryContext
> ----------------------------------------
>
>                 Key: IGNITE-25025
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25025
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Ivan Bessonov
>            Assignee: Ivan Bessonov
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> {code:java}
> RaftGroupServiceImpl#sendWithRetry(CompletableFuture<R>, RetryContext){code}
> In this method we might fail with a timeout. If we do, we create an exception 
> with a detailed message. I believe that these details are not enough. What I 
> propose:
>  * First of all, move exception creation code into a context itself.
>  * For each {{nextAttempt}} call, pass a *short* message that would describe 
> a reason for the retry. Like:
>  ** {{Exception "message" from peer "foo".}}
>  ** {{Peer "foo" returned status EBUSY.}}
>  ** etc.
>  ** I repeat, messages should be short.
>  * Preserve a timestamp of each retry attempt.
>  * We should keep in mind that there might be a lot of retries. Let's only 
> accumulate the last 25 of them, for example.
>  * Concatenate these reasons into a readable format and add to the 
> {{{}TimeoutException{}}}'s message.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to