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