You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Artiukhov (Jira)" <ji...@apache.org> on 2024/01/16 21:17:00 UTC

[jira] [Created] (IGNITE-21275) Up to 5x difference in performance between SQL API and key-value API

Ivan Artiukhov created IGNITE-21275:
---------------------------------------

             Summary: Up to 5x difference in performance between SQL API and key-value API
                 Key: IGNITE-21275
                 URL: https://issues.apache.org/jira/browse/IGNITE-21275
             Project: Ignite
          Issue Type: Improvement
          Components: sql
            Reporter: Ivan Artiukhov
         Attachments: 1240-sql-insert.png, 1240-sql-select.png, 1242-kv-get.png, 1242-kv-put.png

AI3 rev. ca21384f85e8c779258cb3b21f54b6c30a7071e4 (Jan 16 2024)

Compare two benchmark runs:
 * a benchmark which uses KeyValueView to perform single {{put()}} and {{{}get(){}}}: [https://github.com/gridgain/YCSB/blob/ycsb-2023.11/ignite3/src/main/java/site/ycsb/db/ignite3/IgniteClient.java] 
 * a benchmark which performs {{INSERT}} and {{SELECT}} via {{Statement}} objects by using Ignite SQL API: [https://github.com/gridgain/YCSB/blob/ycsb-2023.11/ignite3/src/main/java/site/ycsb/db/ignite3/IgniteSqlClient.java] 

h1. Run 1, PUT/INSERT

Insert N unique entries into a single-node cluster from a single-threaded client. 
h2. KeyValueView

N = 250000
{code:java}
Command line: -db site.ycsb.db.ignite3.IgniteClient -load -P /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p recordcount=250000 -p warmupops=50000 -p dataintegrity=true -p measurementtype=timeseries -p status.interval=1 -p hosts=192.168.1.37 -s {code}
!1242-kv-put.png!
h2. SQL API

N = 15000

 
{code:java}
Command line: -db site.ycsb.db.ignite3.IgniteSqlClient -load -P /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p recordcount=150000 -p warmupops=15000 -p dataintegrity=true -p measurementtype=timeseries -p status.interval=1 -p hosts=192.168.1.47 -s {code}
!1240-sql-insert.png!

 
h1. Run 2, GET/SELECT

Get N entries inserted on Run 1.
h2. KeyValueView

N = 250000

 
{code:java}
Command line: -db site.ycsb.db.ignite3.IgniteClient -t -P /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p operationcount=250000 -p recordcount=250000 -p warmupops=50000 -p dataintegrity=true -p measurementtype=timeseries -p status.interval=1 -p hosts=192.168.1.37 -s{code}
!1242-kv-get.png!

 
h2. SQL API

N = 150000
{code:java}
Command line: -db site.ycsb.db.ignite3.IgniteSqlClient -t -P /opt/pubagent/poc/config/ycsb/workloads/workloadc -threads 1 -p operationcount=150000 -p recordcount=150000 -p warmupops=15000 -p dataintegrity=true -p measurementtype=timeseries -p status.interval=1 -p hosts=192.168.1.47 -s {code}
!1240-sql-select.png!

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)