[
https://issues.apache.org/jira/browse/IGNITE-19824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-19824:
-------------------------------------
Description:
h3. Motivation
Currently, all implicit read operations start RW transactions, thus it's
possible to catch "Failed to acquire a lock due to a conflict" exception.
Generally speaking, given issue should be resolved by substituting RW with RO
for all implicit read transactions, however such approach will decrease
linearizability so it's required to verify it with product management. It's
still however possible to have special case RO for implicit single-key get
operation that will set readTimestamp on primary replica instead of transaction
coordinator and thus provide cluster-wide linearizability even for RO
transactions (only for single-key implicit get operations). Within this ticket,
such special RO transactions should be introduced along with their usage switch
for single-get implicit reads.
h3. Definition of Done
* Implicit single-get operations use special RO transactions that provide
cluster-wide linearizability and thus do not throw "Failed to acquire a lock
due to a conflict" exception.
* ItAbstractDataStreamerTest#testAutoFlushByTimer adjusted: catch block
removed.
h3. Implementation Notes
> Implicit RO should be used in implicit single gets
> --------------------------------------------------
>
> Key: IGNITE-19824
> URL: https://issues.apache.org/jira/browse/IGNITE-19824
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Priority: Major
> Labels: ignite-3
>
> h3. Motivation
> Currently, all implicit read operations start RW transactions, thus it's
> possible to catch "Failed to acquire a lock due to a conflict" exception.
> Generally speaking, given issue should be resolved by substituting RW with RO
> for all implicit read transactions, however such approach will decrease
> linearizability so it's required to verify it with product management. It's
> still however possible to have special case RO for implicit single-key get
> operation that will set readTimestamp on primary replica instead of
> transaction coordinator and thus provide cluster-wide linearizability even
> for RO transactions (only for single-key implicit get operations). Within
> this ticket, such special RO transactions should be introduced along with
> their usage switch for single-get implicit reads.
> h3. Definition of Done
> * Implicit single-get operations use special RO transactions that provide
> cluster-wide linearizability and thus do not throw "Failed to acquire a lock
> due to a conflict" exception.
> * ItAbstractDataStreamerTest#testAutoFlushByTimer adjusted: catch block
> removed.
> h3. Implementation Notes
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)