Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Motivation
Currently, locks are released on primary when cleanup is replicated over majority
private CompletableFuture<Void> processTxCleanupAction(TxCleanupReplicaRequest request) { ... return raftClient .run(txCleanupCmd) .thenCompose(ignored -> allOffFuturesExceptionIgnored(txReadFutures, request) .thenRun(() -> releaseTxLocks(request.txId()))); ... }
That is actually incorrect, because it's possible that primary won't be a part of a majority, meaning that we will release lock still having writeIntent locally. Generally speaking that should be resolved by implementing writeIntent resolution for RW transactions. However given ticket is not yet implemented. Anyway, it is worth to clean up writeIntents on primary replica explicitly for a sense of performance in order to eliminate excessive writeIntent resolutions.
Definition of Done
- Explicit writeIntent cleanup on primary replica prior to locks release is implemented.
Attachments
Issue Links
- blocks
-
IGNITE-18856 Switch primary replica calls from Raft leader to primary replica
- Resolved
- relates to
-
IGNITE-19570 Write intent resolution for RW transactions
- Resolved
- links to