Alexey Scherbakov created IGNITE-27438:
------------------------------------------
Summary: Delay writes until expicit transaction commit
Key: IGNITE-27438
URL: https://issues.apache.org/jira/browse/IGNITE-27438
Project: Ignite
Issue Type: Improvement
Affects Versions: 3.3
Reporter: Alexey Scherbakov
Currently each expicit tx operations is executed on a primary replica.
This causes additional RTTs and add latency to a transaction.
This can be optimized by buffering "blind" writes (unconditinal puts) on a tx
coordinator until commit.
Similar optimization exists in AI3.
This gives several benefits:
1. Only read operations cause network round trips.
2. Subsequent reads can be served locally. For example
{code:java}
int val = table.get(tx, key);
table.put(tx, key, val + 1);
{code}
will produce only one RT.
3. Single partition transactions can be committed in one phase, greatly
reducing latency.
There are also drawbacks:
1. We need additionaly memory to buffer tuples. So, the optimization is
applicable to only small transactions.
2. Mixed KV + SQL case stops working.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)