Konstantin Orlov created IGNITE-22263:
-----------------------------------------
Summary: Sql. Avoid starting transaction for KV operation
Key: IGNITE-22263
URL: https://issues.apache.org/jira/browse/IGNITE-22263
Project: Ignite
Issue Type: Improvement
Components: sql
Reporter: Konstantin Orlov
Currently, performance of KV put operation via SQL API is ~2 times worse than
via KeyValueView API:
{code:java}
Benchmark (clusterSize) Mode Cnt Score Error Units
InsertBenchmark.kvInsert 1 avgt 20 67.154 ± 4.266 us/op
InsertBenchmark.sqlInsert 1 avgt 20 149.900 ± 9.679 us/op
// these numbers acquired on MBP M3, commit c25f9fda.
{code}
This is caused by the fact that sql engine starts transaction explicitly if one
was not provided by the user, thus not taking an advantage of single phase
commit optimisation which is available for implicit transactions which touch
only one partition.
We can address the issue by postponing the moment of starting a transaction
till execution phase. This will help to avoid starting an explicit transaction
for simple KV cases.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)