[ 
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)

Reply via email to