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

Alexey Scherbakov resolved IGNITE-22130.
----------------------------------------
    Resolution: Fixed

> Fix retry logic for transactions
> --------------------------------
>
>                 Key: IGNITE-22130
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22130
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexey Scherbakov
>            Assignee: Alexey Scherbakov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0
>
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> Recently (IGNITE-21540) retries was introduced for transactions, both 
> explicit and implicit.
> But the current implementation has flaws:
>  # In embedded mode retries cause recursion (because the future is completed 
> on the same thread), which can lead to stack overflow.
>  # Retries are executed without delay in a loop, which might not give enough 
> time for conflicting lock release, making retries almost useless.
>  # Read operations are not retried but need to.
>  # Data streamer operations are not retried but need to.
> To fix 1 and 2 I suggest to submit a response for retryable operation (if 
> retry is required) to another thread to avoid recursion and introduce retry 
> delay for retriable operations, preferrably with exponential back-off.
> Fix for 3 and 4 is obvious.



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

Reply via email to