[ https://issues.apache.org/jira/browse/IGNITE-20041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17769574#comment-17769574 ]
Alexander Lapin commented on IGNITE-20041: ------------------------------------------ [~ksizov] Few minors left, generally LGTM. Thanks! > Asynchronous writeIntent cleanup on write intent resolution > ----------------------------------------------------------- > > Key: IGNITE-20041 > URL: https://issues.apache.org/jira/browse/IGNITE-20041 > Project: Ignite > Issue Type: Improvement > Reporter: Alexander Lapin > Assignee: Kirill Sizov > Priority: Major > Labels: ignite-3, transaction3_recovery, transactions > Time Spent: 5h 20m > Remaining Estimate: 0h > > h3. Motivation > Both to handle commit partition failure and data node restart, it's required > to cleanup local writeIntents in order to eliminate excessive write intent > resolutions. It's not a matter of correctness, it's a matter of optimization. > h3. Definition of Done > * Firstly, after write intent resolution, both coordinator path and commit > partition path, it's required to change local state fot the corresponding > transaction to either ABORTED or COMMITED in txnStateMap if > writeIntentResolution outcome is ABORTED or COMMITED. That will allow > switching all further writeIntentResolutions from a given node for > corresponding transaction to a local path that is of course much faster. > * An asynchronous task should be scheduled that will cleanup given write > intent by either committing or aborting it. > h3. Implementation Notes > * Earlier we've agreed that only RW transactions should cleanup > writeIntents, however I believe it's no longer reasonable, meaning that both > RW and RO should do this. > * In order to minimize the effect of side write intents cleanup on > transaction execution flow, we must perform this (and any other) write > intents cleanup asynchronously in a special pool. > * Write intent cleanup should be fully idempotent, meaning, that two > separate transactions may touch the same write intent and start the cleanup. > One of them will win and actually do the cleanup, another will result in > no-op. -- This message was sent by Atlassian Jira (v8.20.10#820010)