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