[ 
https://issues.apache.org/jira/browse/IGNITE-19849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Lapin closed IGNITE-19849.
------------------------------------
    Ignite Flags:   (was: Docs Required,Release Notes Required)

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

Reply via email to