[ 
https://issues.apache.org/jira/browse/IGNITE-21411?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Chudov updated IGNITE-21411:
----------------------------------
    Description: 
*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.

  was:
*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 on this 
transaction finish.

*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.


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

Reply via email to