[ 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 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 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] > 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: 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] > 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)