Replace OplogBufferBatchedQueue _queue std::list with a circular buffer

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Replication
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      This shows a 5-10% performance improvement in oplog_application_bm versus 55fb8516f10ac71c10f2a81b295c3812fc56f438 in a POC:

      Benchmark master (ms) branch (ms)
      BM_TestInserts/100000/manual_time 264 248
      BM_TestApplyOps/100000/10/manual_time 262 260
      BM_TestApplyOps/100000/100/manual_time 226 219
      BM_TestApplyOps/100000/500/manual_time 217 214
      BM_TestApplyOps/100000/1000/manual_time 222 217
      BM_TestRetryableInserts/100000/10/manual_time 720 658
      BM_TestRetryableInserts/100000/100/manual_time 331 315
      BM_TestRetryableInserts/100000/500/manual_time 320 304
      BM_TestRetryableInserts/100000/1000/manual_time 320 308
      BM_TestTxnApplyOps/100000/10/manual_time 678 680
      BM_TestTxnApplyOps/100000/100/manual_time 272 264
      BM_TestTxnApplyOps/100000/500/manual_time 263 254
      BM_TestTxnApplyOps/100000/1000/manual_time 260 254
      BM_TestPrepares/1/100000/10/manual_time 6286 4912
      BM_TestPrepares/1/100000/100/manual_time 1037 949
      BM_TestPrepares/1/100000/500/manual_time 571 520
      BM_TestPrepares/10/100000/10/manual_time 2469 2069
      BM_TestPrepares/10/100000/100/manual_time 771 661
      BM_TestPrepares/10/100000/500/manual_time 535 474
      BM_TestPrepares/100/100000/10/manual_time 2061 1900
      BM_TestPrepares/100/100000/100/manual_time 914 852
      BM_TestPrepares/100/100000/500/manual_time 595 560
      BM_TestPrepares/500/100000/10/manual_time 3420 3234
      BM_TestPrepares/500/100000/100/manual_time 1999 1936
      BM_TestPrepares/500/100000/500/manual_time 549 550
      BM_TestCreateIndex/manual_time 512 514

      Total ms:

      master branch % improvement
      34533 31263 ~9.5%

      The improvements don't show in our high value workloads (perf patch).

            Assignee:
            Unassigned
            Reporter:
            Brad Cater
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: