[
https://issues.apache.org/jira/browse/IGNITE-19664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Artukhov updated IGNITE-19664:
-----------------------------------
Description:
Apache Ignite 3, rev. 0c68cbe3f016e508bd9d53ce5320c88acba1acff
YCSB key-value benchmarks:
https://github.com/gridgain/YCSB/tree/ae687c3bbd82eb7ce7b886af9a2ae2757457097c/ignite3
h1. Summary
The performance of key-value {{put()}} operations may be ~1.5 worse if
performed via Java thin client in comparison to similar {{put()}} operations
performed within an embedded node.
h1. Test 1. Thin client node
h2. Steps
Start a separate Ignite 3 node and a YCSB client which "100% inserts" workload.
1. Start an Apache Ignite 3 server node with the attached
{{ignite-config.conf}}.
2. Start a YCSB client node which performs {{KeyValueView#put}} operations.
YCSB command line options: {{-db site.ycsb.db.ignite3.IgniteClient -p
hosts=127.0.0.1 -s -P ./workloads/workloadc -threads 4 -p dataintegrity=true -p
operationcount=1000000 -p recordcount=1000000 -p disableFsync=true -p
useEmbedded=false -load}}
h2. Results
{noformat}
[OVERALL], RunTime(ms), 282482
[OVERALL], Throughput(ops/sec), 3540.048569466373
[CLEANUP], Operations, 4
[CLEANUP], AverageLatency(us), 2487301.25
[CLEANUP], MinLatency(us), 4
[CLEANUP], MaxLatency(us), 9953279
[CLEANUP], 95thPercentileLatency(us), 9953279
[CLEANUP], 99thPercentileLatency(us), 9953279
[INSERT], Operations, 1000000
[INSERT], AverageLatency(us), 1067.488346
[INSERT], MinLatency(us), 492
[INSERT], MaxLatency(us), 421375
[INSERT], 95thPercentileLatency(us), 2059
[INSERT], 99thPercentileLatency(us), 5151
[INSERT], Return=OK, 1000000
{noformat}
Node's log: [^ignite3db-0.log]
Node's GC log: [^gc.log.20230606_074305]
Node's config: [^ignite-config.conf]
YCSB log: [^ycsb-run8-thin.txt]
h1. Test 2. Embedded node
h2. Steps
The following steps will start YCSB with an embedded Ignite 3 node within the
same JVM and the "100% insert" workload on that node.
1. Ensure that the node started in the Test 1 are stopped.
2. Run YCSB with the {{useEmbedded=true}} parameter: {{-db
site.ycsb.db.ignite3.IgniteClient -p hosts=127.0.0.1 -s -P
./workloads/workloadc -threads 4 -p dataintegrity=true -p
operationcount=1000000 -p recordcount=1000000 -p disableFsync=true -p
useEmbedded=true -load}}
h2. Results
{noformat}
[OVERALL], RunTime(ms), 173993
[OVERALL], Throughput(ops/sec), 5747.357652319346
[INSERT], Operations, 1000000
[INSERT], AverageLatency(us), 614.723711
[INSERT], MinLatency(us), 284
[INSERT], MaxLatency(us), 342271
[INSERT], 95thPercentileLatency(us), 1182
[INSERT], 99thPercentileLatency(us), 3357
[INSERT], Return=OK, 1000000
{noformat}
Whole YCSB log: [^ycsb-run9-embedded.txt]
h1. Local machine specs
Lenovo ThinkPad T15 Gen 1
CPU: Intel i7-10510U (4 cores, 8 threads)
RAM: 32 GiB DDR4-2666
SSD: 512 GiB M.2 2242
was:
Apache Ignite 3, rev. 0c68cbe3f016e508bd9d53ce5320c88acba1acff
YCSB key-value benchmarks:
https://github.com/gridgain/YCSB/tree/ae687c3bbd82eb7ce7b886af9a2ae2757457097c/ignite3
h1. Summary
The performance of key-value {{put()}} operations may be ~1.5 worse if
performed via Java thin client in comparison to similar {{put()}} operations
performed within an embedded node.
h1. Test 1. Thin client node
h2. Steps
Start a separate Ignite 3 node and a YCSB client which "100% inserts" workload.
1. Start an Apache Ignite 3 server node with the attached
{{ignite-config.conf}}.
2. Start a YCSB client node which performs {{KeyValueView#put}} operations.
YCSB command line options: {{-db site.ycsb.db.ignite3.IgniteClient -p
hosts=127.0.0.1 -s -P ./workloads/workloadc -threads 4 -p dataintegrity=true -p
operationcount=1000000 -p recordcount=1000000 -p disableFsync=true -p
useEmbedded=false -load}}
h2. Results
{noformat}
[OVERALL], RunTime(ms), 282482
[OVERALL], Throughput(ops/sec), 3540.048569466373
[CLEANUP], Operations, 4
[CLEANUP], AverageLatency(us), 2487301.25
[CLEANUP], MinLatency(us), 4
[CLEANUP], MaxLatency(us), 9953279
[CLEANUP], 95thPercentileLatency(us), 9953279
[CLEANUP], 99thPercentileLatency(us), 9953279
[INSERT], Operations, 1000000
[INSERT], AverageLatency(us), 1067.488346
[INSERT], MinLatency(us), 492
[INSERT], MaxLatency(us), 421375
[INSERT], 95thPercentileLatency(us), 2059
[INSERT], 99thPercentileLatency(us), 5151
[INSERT], Return=OK, 1000000
{noformat}
Node's log: [^ignite3db-0.log]
Node's GC log: [^gc.log.20230606_074305]
Node's config: [^ignite-config.conf]
YCSB log: [^ycsb-run8-thin.txt]
h1. Test 2. Embedded node
h2. Steps
The following step will start YCSB with an embedded Ignite 3 node within the
same JVM and the "100% insert" workload on that node.
1. Run YCSB with the {{useEmbedded=true}} parameter: {{-db
site.ycsb.db.ignite3.IgniteClient -p hosts=127.0.0.1 -s -P
./workloads/workloadc -threads 4 -p dataintegrity=true -p
operationcount=1000000 -p recordcount=1000000 -p disableFsync=true -p
useEmbedded=true -load}}
h2. Results
{noformat}
[OVERALL], RunTime(ms), 173993
[OVERALL], Throughput(ops/sec), 5747.357652319346
[INSERT], Operations, 1000000
[INSERT], AverageLatency(us), 614.723711
[INSERT], MinLatency(us), 284
[INSERT], MaxLatency(us), 342271
[INSERT], 95thPercentileLatency(us), 1182
[INSERT], 99thPercentileLatency(us), 3357
[INSERT], Return=OK, 1000000
{noformat}
Whole YCSB log: [^ycsb-run9-embedded.txt]
h1. Local machine specs
Lenovo ThinkPad T15 Gen 1
CPU: Intel i7-10510U (4 cores, 8 threads)
RAM: 32 GiB DDR4-2666
SSD: 512 GiB M.2 2242
> Insufficient performance of key-value operations via Java thin client
> ---------------------------------------------------------------------
>
> Key: IGNITE-19664
> URL: https://issues.apache.org/jira/browse/IGNITE-19664
> Project: Ignite
> Issue Type: Bug
> Reporter: Ivan Artukhov
> Priority: Major
> Labels: ignite-3
> Attachments: ai3_embedded_20230606_083100.jfr.zip,
> ai3_thin_client_20230606_074305.jfr.zip, gc.log.20230606_074305,
> ignite-config.conf, ignite3db-0.log, ycsb-run8-thin.txt,
> ycsb-run9-embedded.txt
>
>
> Apache Ignite 3, rev. 0c68cbe3f016e508bd9d53ce5320c88acba1acff
> YCSB key-value benchmarks:
> https://github.com/gridgain/YCSB/tree/ae687c3bbd82eb7ce7b886af9a2ae2757457097c/ignite3
> h1. Summary
> The performance of key-value {{put()}} operations may be ~1.5 worse if
> performed via Java thin client in comparison to similar {{put()}} operations
> performed within an embedded node.
> h1. Test 1. Thin client node
> h2. Steps
> Start a separate Ignite 3 node and a YCSB client which "100% inserts"
> workload.
> 1. Start an Apache Ignite 3 server node with the attached
> {{ignite-config.conf}}.
> 2. Start a YCSB client node which performs {{KeyValueView#put}} operations.
> YCSB command line options: {{-db site.ycsb.db.ignite3.IgniteClient -p
> hosts=127.0.0.1 -s -P ./workloads/workloadc -threads 4 -p dataintegrity=true
> -p operationcount=1000000 -p recordcount=1000000 -p disableFsync=true -p
> useEmbedded=false -load}}
> h2. Results
> {noformat}
> [OVERALL], RunTime(ms), 282482
> [OVERALL], Throughput(ops/sec), 3540.048569466373
> [CLEANUP], Operations, 4
> [CLEANUP], AverageLatency(us), 2487301.25
> [CLEANUP], MinLatency(us), 4
> [CLEANUP], MaxLatency(us), 9953279
> [CLEANUP], 95thPercentileLatency(us), 9953279
> [CLEANUP], 99thPercentileLatency(us), 9953279
> [INSERT], Operations, 1000000
> [INSERT], AverageLatency(us), 1067.488346
> [INSERT], MinLatency(us), 492
> [INSERT], MaxLatency(us), 421375
> [INSERT], 95thPercentileLatency(us), 2059
> [INSERT], 99thPercentileLatency(us), 5151
> [INSERT], Return=OK, 1000000
> {noformat}
> Node's log: [^ignite3db-0.log]
> Node's GC log: [^gc.log.20230606_074305]
> Node's config: [^ignite-config.conf]
> YCSB log: [^ycsb-run8-thin.txt]
> h1. Test 2. Embedded node
> h2. Steps
> The following steps will start YCSB with an embedded Ignite 3 node within the
> same JVM and the "100% insert" workload on that node.
> 1. Ensure that the node started in the Test 1 are stopped.
> 2. Run YCSB with the {{useEmbedded=true}} parameter: {{-db
> site.ycsb.db.ignite3.IgniteClient -p hosts=127.0.0.1 -s -P
> ./workloads/workloadc -threads 4 -p dataintegrity=true -p
> operationcount=1000000 -p recordcount=1000000 -p disableFsync=true -p
> useEmbedded=true -load}}
> h2. Results
> {noformat}
> [OVERALL], RunTime(ms), 173993
> [OVERALL], Throughput(ops/sec), 5747.357652319346
> [INSERT], Operations, 1000000
> [INSERT], AverageLatency(us), 614.723711
> [INSERT], MinLatency(us), 284
> [INSERT], MaxLatency(us), 342271
> [INSERT], 95thPercentileLatency(us), 1182
> [INSERT], 99thPercentileLatency(us), 3357
> [INSERT], Return=OK, 1000000
> {noformat}
> Whole YCSB log: [^ycsb-run9-embedded.txt]
> h1. Local machine specs
> Lenovo ThinkPad T15 Gen 1
> CPU: Intel i7-10510U (4 cores, 8 threads)
> RAM: 32 GiB DDR4-2666
> SSD: 512 GiB M.2 2242
--
This message was sent by Atlassian Jira
(v8.20.10#820010)