Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-31845

WT performance regression with write retryability enabled

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 3.6.1, 3.7.1
    • Affects Version/s: 3.6.0-rc2
    • Component/s: None
    • None
    • Fully Compatible
    • v3.6
    • Sharding 2017-12-04

      Overview

      For insert_vector workload, there was around 22% less throughput with retryability for single thread and around 17% less throughput for 16 threads. For mixed_insert workload, it was around 20% less throughput at 512 threads.

      Here's the raw data from sysperf running insert_vector.js and mix.js (please ignore mix delete data since it is returning an error because multi remove is not supported with retryability) as of 18007ba100:

      Baseline

      +--------------------------------+----------+--------------+----------+------------------------------+
      | "Test"                         | "Thread" | "Throughput" | "Pass?"  | "Comment"                    |
      |--------------------------------+----------+--------------+----------+------------------------------|
      | "insert_vector_primary"        |        1 | 101623.82574 | true     | ""                           |
      | "insert_vector_secondary_load_ |        1 | 101623.82574 | true     | "Sec. falling behind"        |
      | "insert_vector_secondary_overa |        1 | 101036.71300 | true     | "Sec. slower than primary"   |
      | "insert_vector_primary"        |        8 | 424946.67022 | true     | ""                           |
      | "insert_vector_secondary_load_ |        8 | 424946.67022 | true     | "Sec. falling behind"        |
      | "insert_vector_secondary_overa |        8 | 424934.86726 | true     | "Sec. slower than primary"   |
      | "insert_vector_primary"        |       16 | 453313.87210 | true     | ""                           |
      | "insert_vector_secondary_load_ |       16 | 453313.87210 | true     | "Sec. falling behind"        |
      | "insert_vector_secondary_overa |       16 | 453291.20955 | true     | "Sec. slower than primary"   |
      +--------------------------------+----------+--------------+----------+------------------------------+
      

      With Retryability

      +--------------------------------+----------+--------------+----------+------------------------------+
      | "Test"                         | "Thread" | "Throughput" | "Pass?"  | "Comment"                    |
      |--------------------------------+----------+--------------+----------+------------------------------|
      | "insert_vector_primary"        |        1 | 78814.477375 | true     | ""                           |
      | "insert_vector_secondary_load_ |        1 | 78814.477375 | true     | "Sec. falling behind"        |
      | "insert_vector_secondary_overa |        1 | 78811.850386 | true     | "Sec. slower than primary"   |
      | "insert_vector_primary"        |        8 | 359665.12811 | true     | ""                           |
      | "insert_vector_secondary_load_ |        8 | 359665.12811 | true     | "Sec. falling behind"        |
      | "insert_vector_secondary_overa |        8 | 359657.13746 | true     | "Sec. slower than primary"   |
      | "insert_vector_primary"        |       16 | 376030.41816 | true     | ""                           |
      | "insert_vector_secondary_load_ |       16 | 376030.41816 | true     | "Sec. falling behind"        |
      | "insert_vector_secondary_overa |       16 | 376022.06323 | true     | "Sec. slower than primary"   |
      +--------------------------------+----------+--------------+----------+------------------------------+
      

      baseline mix.js

      +--------------------------------+----------+--------------+----------+------------------------------+
      | "Test"                         | "Thread" | "Throughput" | "Pass?"  | "Comment"                    |
      |--------------------------------+----------+--------------+----------+------------------------------|
      | "mixed_findOne"                |        4 | 4472.6981911 | true     | ""                           |
      | "mixed_insert"                 |        4 | 3805.9756593 | true     | ""                           |
      | "mixed_update"                 |        4 | 3174.7460354 | true     | ""                           |
      | "mixed_delete"                 |        4 | 2824.6050970 | true     | ""                           |
      | "mixed_total"                  |        4 | 14278.024982 | true     | ""                           |
      | "mixed_findOne"                |       64 | 16525.438582 | true     | ""                           |
      | "mixed_insert"                 |       64 | 11653.073597 | true     | ""                           |
      | "mixed_update"                 |       64 | 7931.0945267 | true     | ""                           |
      | "mixed_delete"                 |       64 | 5379.8694900 | true     | ""                           |
      | "mixed_total"                  |       64 | 41489.476196 | true     | ""                           |
      | "mixed_findOne"                |      128 | 15840.411973 | true     | ""                           |
      | "mixed_insert"                 |      128 | 11113.787840 | true     | ""                           |
      | "mixed_update"                 |      128 | 7266.9542743 | true     | ""                           |
      | "mixed_delete"                 |      128 | 4749.9851705 | true     | ""                           |
      | "mixed_total"                  |      128 | 38971.139259 | true     | ""                           |
      | "mixed_findOne"                |      256 | 15766.881334 | true     | ""                           |
      | "mixed_insert"                 |      256 | 9693.6542247 | true     | ""                           |
      | "mixed_update"                 |      256 | 6585.9494255 | true     | ""                           |
      | "mixed_delete"                 |      256 | 4372.4137097 | true     | ""                           |
      | "mixed_total"                  |      256 | 36418.898694 | true     | ""                           |
      | "mixed_findOne"                |      512 | 25639.250408 | true     | ""                           |
      | "mixed_insert"                 |      512 | 5669.6090450 | true     | ""                           |
      | "mixed_update"                 |      512 | 3883.6152132 | true     | ""                           |
      | "mixed_delete"                 |      512 | 2778.9162796 | true     | ""                           |
      | "mixed_total"                  |      512 | 37971.390946 | true     | ""                           |
      +--------------------------------+----------+--------------+----------+------------------------------+
      

      mix.js with retryability

      +--------------------------------+----------+--------------+----------+------------------------------+
      | "Test"                         | "Thread" | "Throughput" | "Pass?"  | "Comment"                    |
      |--------------------------------+----------+--------------+----------+------------------------------|
      | "mixed_findOne"                |        4 | 4457.3807806 | true     | ""                           |
      | "mixed_insert"                 |        4 | 2576.6019375 | true     | ""                           |
      | "mixed_update"                 |        4 | 2090.2318381 | true     | ""                           |
      | "mixed_delete"                 |        4 | 5116.3385612 | true     | ""                           |
      | "mixed_total"                  |        4 | 14240.553117 | true     | ""                           |
      | "mixed_findOne"                |       64 | 17271.671427 | true     | ""                           |
      | "mixed_insert"                 |       64 | 4781.4438353 | true     | ""                           |
      | "mixed_update"                 |       64 | 4051.6637500 | true     | ""                           |
      | "mixed_delete"                 |       64 | 26038.132693 | true     | ""                           |
      | "mixed_total"                  |       64 | 52142.911706 | true     | ""                           |
      | "mixed_findOne"                |      128 | 17153.505938 | true     | ""                           |
      | "mixed_insert"                 |      128 | 4596.0571971 | true     | ""                           |
      | "mixed_update"                 |      128 | 3410.6137130 | true     | ""                           |
      | "mixed_delete"                 |      128 | 28104.783343 | true     | ""                           |
      | "mixed_total"                  |      128 | 53264.960192 | true     | ""                           |
      | "mixed_findOne"                |      256 | 16838.153379 | true     | ""                           |
      | "mixed_insert"                 |      256 | 4982.6915083 | true     | ""                           |
      | "mixed_update"                 |      256 | 3372.3365393 | true     | ""                           |
      | "mixed_delete"                 |      256 | 29890.287152 | true     | ""                           |
      | "mixed_total"                  |      256 | 55083.468579 | true     | ""                           |
      | "mixed_findOne"                |      512 | 16603.510566 | true     | ""                           |
      | "mixed_insert"                 |      512 | 4504.9162216 | true     | ""                           |
      | "mixed_update"                 |      512 | 3067.2317850 | true     | ""                           |
      | "mixed_delete"                 |      512 | 34186.197248 | true     | ""                           |
      | "mixed_total"                  |      512 | 58361.855821 | true     | ""                           |
      +--------------------------------+----------+--------------+----------+------------------------------+
      

        1. baseline.pdf
          13 kB
          Kaloian Manassiev
        2. retryable.pdf
          14 kB
          Kaloian Manassiev

            Assignee:
            randolph@mongodb.com Randolph Tan
            Reporter:
            randolph@mongodb.com Randolph Tan
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: