[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17782326#comment-17782326 ] Ivan Artiukhov commented on IGNITE-20617: - [~korlov] AI3, rev. a9ed167a5045ba166a6b3c84f8fb9df486579b14 (Nov 2 2023) I've run the same test you run, i.e. with 2 server nodes and with 2 IP addresses passed to thin client. {code:java} Command line: -db site.ycsb.db.ignite3.IgniteSqlClient -t -P /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p operationcount=1 -p recordcount=1 -p warmupops=2000 -p dataintegrity=true -p measurementtype=timeseries -p status.interval=1 -p hosts=192.168.1.122,192.168.1.34 -p recordcount=20 -p operationcount=20 -s YCSB Client 2023.7{code} Unfortunately I see far different performance than on your graph. !2023-11-02-15-41-10_run.png! The benchmark log: [^2023-11-02-15-41-10_run.txt] Server nodes logs, JFR, iostat: [^2023-11-02-15-41-10_logs.zip] > 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 >Assignee: Konstantin Orlov >Priority: Major > Labels: ignite-3, performance > Attachments: 2023-11-02-15-41-10_logs.zip, > 2023-11-02-15-41-10_run.png, 2023-11-02-15-41-10_run.txt, > 6b6f0c-select-2srv.png, 6b6f0c-select-logs.zip.zip, echarts.png, > 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=1 -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=1 -p recordcount=1 -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)
[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17782180#comment-17782180 ] Ivan Artiukhov commented on IGNITE-20617: - [~korlov] I see that you run the benchmarks with 2 server node IPs passed to the client. My results are also for 2 nodes, but I passed 1 server node IP address. I'll check one more time. > 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 >Assignee: Konstantin Orlov >Priority: Major > Labels: ignite-3, performance > Attachments: 6b6f0c-select-2srv.png, 6b6f0c-select-logs.zip.zip, > echarts.png, 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=1 -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=1 -p recordcount=1 -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)
[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17781390#comment-17781390 ] Konstantin Orlov commented on IGNITE-20617: --- [~Artukhov], sorry for bothering you, but could you double check please? I've run this benchmark on 2 server node with following run configuration {code:java} Command line: -db site.ycsb.db.ignite3.IgniteSqlClient -t -P /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p operationcount=1 -p recordcount=1 -p warmupops=2000 -p dataintegrity=true -p measurementtype=timeseries -p status.interval=1 -p hosts=192.168.1.41,192.168.1.6 -p operationcount=10 -p recordcount=10 -s YCSB Client 2023.7 {code} and results looks normal to me: !echarts.png! Although I run benchmark on fresh main (753dcde0095e0061efddc15a61c0ae2dc8c80239), I've also checked history between two revisions, and have found no commits that potentially may address this issue > 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 >Assignee: Konstantin Orlov >Priority: Major > Labels: ignite-3, performance > Attachments: 6b6f0c-select-2srv.png, 6b6f0c-select-logs.zip.zip, > echarts.png, 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=1 -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=1 -p recordcount=1 -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)
[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17780404#comment-17780404 ] Ivan Artiukhov commented on IGNITE-20617: - AI3, rev. 6b6f0cb6109d7906a980a31522a1b9c36f88e43a (Fri Oct 27) The same benchmark still shows poor SELECTs performance on 2 server nodes. !6b6f0c-select-2srv.png! Nodes logs, GC logs: [^6b6f0c-select-logs.zip.zip] > 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 >Assignee: Konstantin Orlov >Priority: Major > Labels: ignite-3, performance > Attachments: 6b6f0c-select-2srv.png, 6b6f0c-select-logs.zip.zip, > 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=1 -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=1 -p recordcount=1 -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)
[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17776116#comment-17776116 ] Konstantin Orlov commented on IGNITE-20617: --- Temporal fix should be introduced in IGNITE-20668 > 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=1 -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=1 -p recordcount=1 -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)
[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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=1 -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=1 -p recordcount=1 -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)
[jira] [Commented] (IGNITE-20617) SQL: ~20x performance degradation in SELECTS (2 nodes VS 1 node)
[ https://issues.apache.org/jira/browse/IGNITE-20617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17773929#comment-17773929 ] Ivan Artiukhov commented on IGNITE-20617: - The similar drop is observed on the following JDBC benchmark: [https://github.com/gridgain/YCSB/blob/ycsb-2023.3/ignite3/src/main/java/site/ycsb/db/ignite3/IgniteJdbcClient.java] 100% read on 2 nodes cluster: !jdbc-2nodes-select.png! 100% read on 1 node cluster: !jdbc-1node-select.png! > 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 > > > 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] > * 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=1 -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=1 -p recordcount=1 -p dataintegrity=true -p > measurementtype=timeseries -p hosts=192.168.1.60 -s}} > * Observe the following average throughput on reads: > !sql-2nodes-select.png! > 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)