[ https://issues.apache.org/jira/browse/IGNITE-20446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kirill Sizov resolved IGNITE-20446. ------------------------------------ Fix Version/s: None Resolution: Duplicate > Perform read before executing the Upsert operation > -------------------------------------------------- > > Key: IGNITE-20446 > URL: https://issues.apache.org/jira/browse/IGNITE-20446 > Project: Ignite > Issue Type: Task > Reporter: Kirill Sizov > Assignee: Kirill Sizov > Priority: Major > Labels: ignite-3 > Fix For: None > > > If a transaction was committed/aborted, but for any reason the cleanup > operation was not performed on a node, the write intent entries would still > be present in the storage. > When an RO transaction sees write intents, no matter on primary or on any > other node, it performs write intent resolution and returns the correct > result. > When an RW transaction sees write intents (happens on primary only), it also > performs write intent resolution and cleanup (done in IGNITE-20395, > IGNITE-20445), so we are safe. > But it works only for those RW transactions that perform READ operation > before making any changes. This is not the case for Upsert. So we need to > change it to read data (hence write intent resolution and cleanup). > *Definition of Done* > Upsert operation execution should result in write intent resolution and > cleanup if the affected rows still contain write intents of a finished > transaction. -- This message was sent by Atlassian Jira (v8.20.10#820010)