[
https://issues.apache.org/jira/browse/IGNITE-19849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin resolved IGNITE-19849.
--------------------------------------
Resolution: Invalid
Will be addressed in https://issues.apache.org/jira/browse/IGNITE-19900 in a
bit different way.
> Generate transaction id in client side
> --------------------------------------
>
> Key: IGNITE-19849
> URL: https://issues.apache.org/jira/browse/IGNITE-19849
> Project: Ignite
> Issue Type: Improvement
> Reporter: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
>
> *Motivation*
> Currently, transaction id is generated on a server node (the node is also
> called a transaction coordinator):
> {code}
> HybridTimestamp beginTimestamp = clock.now();
> UUID txId = transactionIdGenerator.transactionIdFor(beginTimestamp);
> {code}
> The transaction id has start time internally. In other word, when we call
> {{transactions().begin()}} we define a time when the transaction is started.
> The time is used in deadlock resolution mechanism.
> In case when the clock on different nodes slightly skewed we may receive
> different order unlike that we have in client side. Because the transactions
> have various coordinators with their clocks. Of course, unexpected behavior
> of deadlock resolution is taken a place here.
> *Definition of done*
> Transaction id is generated on client side, then passes to server. The server
> starts the transaction with a predefined id.
> The transaction's order is defined in client side regardless of clock on
> servers.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)