[
https://issues.apache.org/jira/browse/IGNITE-22263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konstantin Orlov updated IGNITE-22263:
--------------------------------------
Fix Version/s: 3.0.0-beta2
> 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
> Assignee: Konstantin Orlov
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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)