[ https://issues.apache.org/jira/browse/IGNITE-19664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Scherbakov updated IGNITE-19664: --------------------------------------- Epic Link: IGNITE-19479 > 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 Artiukhov > Priority: Major > Labels: ignite-3, performance > 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 > [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)