Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-19664

Insufficient performance of key-value operations via Java thin client

    XMLWordPrintableJSON

Details

    Description

      Apache Ignite 3, rev. 0c68cbe3f016e508bd9d53ce5320c88acba1acff
      YCSB key-value benchmarks: https://github.com/gridgain/YCSB/tree/ae687c3bbd82eb7ce7b886af9a2ae2757457097c/ignite3

      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.

      Test 1. Thin client node

      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

      Results

      [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
      

      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

      Test 2. Embedded node

      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

      Results

      [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
      

      Whole YCSB log: ycsb-run9-embedded.txt

      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

      Attachments

        1. ai3_embedded_20230606_083100.jfr.zip
          1.37 MB
          Ivan Artiukhov
        2. ai3_thin_client_20230606_074305.jfr.zip
          3.40 MB
          Ivan Artiukhov
        3. gc.log.20230606_074305
          18 kB
          Ivan Artiukhov
        4. ignite3db-0.log
          108 kB
          Ivan Artiukhov
        5. ignite-config.conf
          0.2 kB
          Ivan Artiukhov
        6. ycsb-run8-thin.txt
          30 kB
          Ivan Artiukhov
        7. ycsb-run9-embedded.txt
          170 kB
          Ivan Artiukhov

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Artukhov Ivan Artiukhov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: