-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
Affects Version/s: 2.8.0-rc1
-
Component/s: Concurrency, Replication
-
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