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

Pavel Tupitsyn updated IGNITE-22090:
------------------------------------
    Description: 
IGNITE-19681 implements tx partition awareness, where TX_BEGIN request is 
performed together with the first enlisted operation. However, this still 
involves a separate round-trip to start the transaction.

We can change the protocol to do two things in one go:
* Start the transaction
* Enlist first operation

See the comment from [~ascherbakov]: 
https://github.com/apache/ignite-3/pull/3640#discussion_r1575943518
{code}
This can be optimized even further.
Currently we still have +1RTT due to begin tx request/response here, which may 
be sensitive to small transactions.
A transaction should be started on first map request.
For this to work logical client tx id should be assigned on client.
For example, id can consist of local client counter combined with client unique 
id assigned by server on handshake.
One bit of 64 bit id is reserved for "first" flag.
If an operation is "first", the txn is implicitly started.
{code}

  was:
IGNITE-19681 implements tx partition awareness, where TX_BEGIN request is 
performed together with the first enlisted operation. However, this still 
involves a separate round-trip to start the transaction.

We can change the protocol to do two things in one go:
* Start the transaction
* Enlist first operation

See the comment from [~ascherbakov]: 
https://github.com/apache/ignite-3/pull/3640#discussion_r1575943518


> Thin 3.0: Avoid TX_BEGIN round-trip
> -----------------------------------
>
>                 Key: IGNITE-22090
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22090
>             Project: Ignite
>          Issue Type: Improvement
>          Components: thin client
>    Affects Versions: 3.0.0-beta1
>            Reporter: Pavel Tupitsyn
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> IGNITE-19681 implements tx partition awareness, where TX_BEGIN request is 
> performed together with the first enlisted operation. However, this still 
> involves a separate round-trip to start the transaction.
> We can change the protocol to do two things in one go:
> * Start the transaction
> * Enlist first operation
> See the comment from [~ascherbakov]: 
> https://github.com/apache/ignite-3/pull/3640#discussion_r1575943518
> {code}
> This can be optimized even further.
> Currently we still have +1RTT due to begin tx request/response here, which 
> may be sensitive to small transactions.
> A transaction should be started on first map request.
> For this to work logical client tx id should be assigned on client.
> For example, id can consist of local client counter combined with client 
> unique id assigned by server on handshake.
> One bit of 64 bit id is reserved for "first" flag.
> If an operation is "first", the txn is implicitly started.
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to