[
https://issues.apache.org/jira/browse/IGNITE-24120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-24120:
---------------------------------------
Summary: Sort out InternalTable#get() which does not accept transaction
(was: Remove InternalTable#get() which does not accept transaction)
> Sort out InternalTable#get() which does not accept transaction
> --------------------------------------------------------------
>
> Key: IGNITE-24120
> URL: https://issues.apache.org/jira/browse/IGNITE-24120
> Project: Ignite
> Issue Type: Improvement
> Reporter: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
>
> In production code, the mentioned method is always used when there is a
> transaction, so it can be changed to accept transactionId (which is needed in
> non-direct RO replica requests to make it possible to lock LWM).
> On the other hand, in test code, this method is always used in contextx where
> a transaction is not started. It seems that this is because we don't have
> even an internal API to create an RO transaction with a given readTimestamp.
> It seems weird that an interface has a method that is only needed for tests
> (especially given that this method makes it more difficult to implement
> production code: txId is not available).
> We could do one of the following:
> # Introduce an internal API that would allow to create a transaction with a
> given readTimestamp and then switch in tests to InternalTable#get() that
> accepts a transaction
> # Proceed using the test-only method, but add txId as a parameter to it and
> always pass some fake txId from tests
--
This message was sent by Atlassian Jira
(v8.20.10#820010)