Cyrill commented on code in PR #3213:
URL: https://github.com/apache/ignite-3/pull/3213#discussion_r1490895922
##########
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java:
##########
@@ -1658,7 +1638,7 @@ private CompletableFuture<Void>
processWriteIntentSwitchAction(WriteIntentSwitch
return awaitCleanupReadyFutures(request.txId(), request.commit())
.thenCompose(res -> {
try {
- closeAllTransactionCursors(request.txId());
+ cursorManager.closeTransactionCursors(request.txId());
Review Comment:
Before this change every partition had its own set of cursors, but now
they're at the node's level. I don't think this change has lead us to an
equivalent state.
Imagine the case when a node hosts two partitions (A and B), both affected
by a transaction we want to release the resources for.
Also imagine we are currently switching write intents for the partition A.
The futures have completed and we safely close tx cursors. But at this moment
the futures in partition B are still running though the cursors for the entire
transaction have already been closed. This might cause issues with TX
execution.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]