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)

Reply via email to