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