Alexey Scherbakov created IGNITE-22130:
------------------------------------------

             Summary: 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


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 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.

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 is obvious.



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

Reply via email to