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

30% performance regression on simple insert workload on primary

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.1.8
    • Affects Version/s: 3.1.5, 3.1.6
    • Component/s: Replication
    • Labels:
      None
    • Fully Compatible
    • ALL

      Saw a 30% performance decline between 3.1.4 and 3.1.5 in a simple insert workload - 8 threads of the following:

          every = 10000
          for (var i=0; i<500000; ) {
              var bulk = db.c.initializeUnorderedBulkOp();
              for (var j=0; j<every; j++, i++)
                  bulk.insert({x:0})
              bulk.execute()
          }
      

      Execution time in seconds:

              1-node rs    standalone     1-node rs
              wiredtiger   wiredtiger      mmapv1
      3.0.5     19            11             90
      3.1.4     20            12             91
      3.1.5     28            12            109
      

      No performance regression on standalone node, and regression is the primary, so presumably related to oplog insertion. Similar performance regression for both WT and mmapv1.

      Did a git bisect and identified f302737346da1bfb46f5c3b295bfb7896daa1508 as the first bad commit, and this change is indeed related to oplog processing.

      Even though this is a bit old at this point, more recent builds show similar (or worse) performance, so presumably this is still relevant.

            Assignee:
            scotthernandez Scott Hernandez (Inactive)
            Reporter:
            bruce.lucas@mongodb.com Bruce Lucas (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: