[
https://issues.apache.org/jira/browse/IGNITE-21411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17816100#comment-17816100
]
Kirill Sizov commented on IGNITE-21411:
----------------------------------------
It might be required to add some kind of a read only transaction enlistment to
track RO transaction state. This task will be reevaluated once IGNITE-17666 and
all linked tasks are completed.
> Prohibit operations on the finished RO transactions
> ---------------------------------------------------
>
> Key: IGNITE-21411
> URL: https://issues.apache.org/jira/browse/IGNITE-21411
> Project: Ignite
> Issue Type: Improvement
> Reporter: Denis Chudov
> Priority: Major
> Labels: ignite-3
>
> *Motivation*
> For now we don't have any mechanism in RO transactions implementation to
> prohibit further gets/scans after finishing this transaction. In the same
> time, the ReadOnlyTransactionImpl#finish method updates the observable
> timestamp tracker which is necessary for implicit RO transactions, and
> completes the RO tx future which unblocks the low watermark in order to move
> it forward.
> Cursors that were opened within a transaction should be also closed, but this
> is out of scope of this ticket, see IGNITE-21291.
> *Definition of done*
> Any operations on the finished RO transactions are prohibited like it is done
> on RW transactions.
> *Implementation notes*
> RW-lock is used to check and prohibit enlists to RW transactions, something
> more simple can be used for RO transactions. There is a
> ReadOnlyTransactionImpl#finishGuard - it may appear to be enough for the
> purpose of locking the transaction for new operations.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)