You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2024/12/26 13:47:00 UTC
[jira] [Updated] (IGNITE-24120) Sort out InternalTable#get() which does not accept transaction
[ 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)