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

Performance Regression after upgrading from 3.6 to 4.0 or 4.2

    • Type: Icon: Question Question
    • Resolution: Incomplete
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 4.2.3, 4.0.16
    • Component/s: None
    • Labels:
      None
    • Fully Compatible

      Running YCSB it was possible to identify a performance regression around 18% for MongoDB 4.0 and 4.2 for read operations compared to 3.6. 

      The test used:

       

      ./bin/ycsb load mongodb -s -P workloads/workloada -p recordcount=5000000 -p mongodb.url="mongodb://admin:admin@localhost:27017/ycsb?authSource=admin&w=0" -p mongodb.auth="true" -threads 10
      

       

       

      ./bin/ycsb run mongodb -s -P workloads/workloadc -p operationcount=5000000 -p mongodb.url="mongodb://admin:admin@localhost:27017/ycsb?authSource=admin&w=0&compressors=zlib" -p mongodb.auth="true" -threads 30
      

       

      $cat ./workloads/workloadc
      recordcount=1000 
      operationcount=1000 
      workload=site.ycsb.workloads.CoreWorkload
      readallfields=true
      readproportion=0.8 
      updateproportion=0.15 
      scanproportion=0 
      insertproportion=0.5
      

      The tests were run on t2.xlarge machines on AWS where the conditions below were met:

      3 - mongoD

      1- config server

      1- mongoS + YCSB 

      The dataset fits in memory and there was no resource contention.

      Using perf(attached the flame graph) it seems that transaction features are the culprit.

       

       

            Assignee:
            dmitry.agranat@mongodb.com Dmitry Agranat
            Reporter:
            vgrippa@gmail.com Vinicius Grippa
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: