You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by " Kirill Sizov (Jira)" <ji...@apache.org> on 2024/02/09 14:48:00 UTC

[jira] [Commented] (IGNITE-21411) Prohibit operations on the finished RO transactions

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