[
https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17776108#comment-17776108
]
Konstantin Orlov commented on IGNITE-20617:
-------------------------------------------
The reason of such drastic degradation is code in
{{TxManagerImpl#currentReadTimestamp()}} that was commented out under {{TODO:
IGNITE-20378 Fix it}}. Because of that, RO transaction doesn't start in the
past as it should, which results in a waiting of a safe time on every read.
> SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
> ----------------------------------------------------------------
>
> Key: IGNITE-20617
> URL: https://issues.apache.org/jira/browse/IGNITE-20617
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Reporter: Ivan Artiukhov
> Priority: Major
> Labels: ignite-3, performance
> Attachments: ignite-config.json, jdbc-1node-select.png,
> jdbc-2nodes-select.png, sql-1node-select.png, sql-2nodes-select.png,
> sql-logs-2-server-nodes.zip
>
>
> Ignite 3, rev. 7d188ac7ae068bd69ff0e6e6cfe5a32ac5749d17
> Benchmark:
> [https://github.com/gridgain/YCSB/blob/ycsb-2023.3/ignite3/src/main/java/site/ycsb/db/ignite3/IgniteSqlClient.java]
>
> The benchmark establishes an SQL {{Session}} and perform {{SELECTs}} via
> {{{}preparedStatement{}}}.
>
> Steps:
> * Run an Ignite cluster of 2 nodes with the attached config
> [^ignite-config.json] .
> ** *fsync = false*
> * Run the SQL YCSB benchmark in preload mode:
> ** {{-db site.ycsb.db.ignite3.IgniteSqlClient -load -P
> /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p
> recordcount=10000 -p dataintegrity=true -p measurementtype=timeseries -p
> hosts=192.168.1.60}}
> * Run the SQL YCSB benchmark in 100% read mode:
> ** {{-db site.ycsb.db.ignite3.IgniteSqlClient -t -P
> /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p
> operationcount=10000 -p recordcount=10000 -p dataintegrity=true -p
> measurementtype=timeseries -p hosts=192.168.1.60 -s}}
> * Observe the following average throughput on reads:
> !sql-2nodes-select.png!
> Server node's logs: [^sql-logs-2-server-nodes.zip]
> Repeat the test with only 1 server node and observe {*}~20x better throughput
> on reads{*}:
> !sql-1node-select.png!
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)