Ivan Artukhov created IGNITE-19664: -------------------------------------- Summary: 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 Attachments: 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 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] -- This message was sent by Atlassian Jira (v8.20.10#820010)