mmapv1 replica multi collection insert is 70% slower vs no replication

XMLWordPrintableJSON

    • Fully Compatible
    • ALL
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      it seems mmapv1 insert with multiple collections does not benefit from CLL

      test details

      • standalone mongod with or without journal
      • single member replica set with or without journal
      • two insert function as in the attached js file, test is done with 20 thread insert into 20 collection or single collection,
      • test with 2.8 master (6cab2a29c7dcb56ce132c200321bd1424f977f55)
      • check insert throughput from benchRun results
        r = run_multi_col();
        print(r.insert);
        

      Observation

      • 2.6.5 and master (with single collection) have around 24-26% impact when enable replica
      • master with multiple collections show 68-72% performance impact when enable replication
      • it seems master benefit a lot from multiple collection insert in standalone mode, while replica set doesn't.

      results (insert throughput)

      # master with --nojournal, insert into multiple Collections
      > master_noJournal_standalone
      115225.80987608673
      > master_noJournal_1memberReplica
      32323.614478819432
      > (master_noJournal_1memberReplica - master_noJournal_standalone)/ master_noJournal_standalone
      -0.719475918515304
      
      # master with journal, insert into multiple Collections
      > master_withJournal_standalone
      86472.48634513422
      > master_withJournal_1memberReplica
      27146.357440379936
      > (master_withJournal_1memberReplica - master_withJournal_standalone)/ master_withJournal_standalone
      > -0.6860694240705448
      
      # 2.6.5 with --nojournal, insert into multiple Collections
      > v265_noJournal_standalone = s3.insert
      35971.029062602414
      > v265_noJournal_1memberReplica = s2.insert
      27461.29467821579
      > (v265_noJournal_1memberReplica - v265_noJournal_standalone)/ v265_noJournal_standalone
      -0.23657189149569932
      
      # 2.6.5 with journal, insert into multiple Collections
      > v265_withJournal_standalone
      31201.989380142608
      > v265_withJournal_1memberReplica
      23050.56460661642
      > (v265_withJournal_1memberReplica - v265_withJournal_standalone)/ v265_withJournal_standalone
      > -0.26124695685954796
      
      # master, insert into single Collections
      > master_withJournal_1memberReplica_1col
      19600.78767307458
      > master_withJournal_standalone_1col
      26011.588679734243
      > (master_withJournal_1memberReplica_1col - master_withJournal_standalone_1col) / master_withJournal_standalone_1col
      -0.24645941797681695
      

        1. run.js
          1 kB
        2. run.js
          3 kB
        3. run.js
          3 kB

            Assignee:
            Geert Bosch
            Reporter:
            Rui Zhang (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: