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