[
https://issues.apache.org/jira/browse/IGNITE-20322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-20322:
-----------------------------------------
Epic Link: IGNITE-19884
> Add ability to pass an observable timestamp to an implicit transaction
> ----------------------------------------------------------------------
>
> Key: IGNITE-20322
> URL: https://issues.apache.org/jira/browse/IGNITE-20322
> Project: Ignite
> Issue Type: Improvement
> Reporter: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
>
> *Motivation*
> An implicit transaction is a transaction that is started by the table API
> when a single operation is executed without specifying a transaction and
> committed the operation is finished. Currently, implicit transactions use the
> common observable timestamp. This timestamp is reserved for transactions
> started by the embedded node only. That leads to unnecessary adjustments of
> the observable timestamp (the timestamp is updated more often than required),
> that may have serious performance impact on read-only transactions and read
> operations which use implicit read-only transactions.
> *Definition of done*
> Implicit transactions should start with an observable timestamp that is
> specific for each embedded server or for each client.
> *Implementation notes*
> On server side, thin client requests are handled by
> ClientInboundMessageHandler, which uses public transaction API to deal with
> transactions. However, observable timestamp shouldn't be a part of public
> API. Within the scope of this ticket, we should extent internal transaction
> API in order to:
> * associate each client session with an instance of IgniteTransactions
> (which already contains observable timestamp tracker);
> * allow the client to update its observable timestamp tracker, for the cases
> when client's observable timestamp is updated by responses from another
> server node.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)