[SERVER-16908] Performance Regression in Foreground Index Builds with MMAPv1 Created: 16/Jan/15  Updated: 27/Jan/15  Resolved: 22/Jan/15

Status: Closed
Project: Core Server
Component/s: Index Maintenance
Affects Version/s: 2.8.0-rc5
Fix Version/s: 3.0.0-rc6

Type: Bug Priority: Critical - P2
Reporter: Ben Becker Assignee: Eric Milkie
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File index_build_test.js    
Issue Links:
Related
Backwards Compatibility: Fully Compatible
Operating System: ALL
Steps To Reproduce:

Run the attached script, but modify the list of hosts at the bottom to reflect the workload target hosts (localhost:27107 is the first host by default).

The script reports the amount of time (in milliseconds) each index build takes, as well as the initial insert phase.

Participants:

 Description   

In v2.8-rc5 with mmapv1, foreground index builds are ~10-30% slower than v2.6.6. Wired Tiger is ~5% - 30% faster than v2.6.6.

Results:

{
  insert_500000_docs: 238229ms,
  build_fg_ascending: 1715ms,
  build_fg_descending: 1838ms,
  build_fg_random: 3162ms,
  build_fg_unique: 1979ms,
  build_fg_sparse: 2228ms,
  build_fg_multikey: 10051ms,
  build_fg_string: 4205ms,
  build_fg_text: 25846ms,
  build_fg_hash: 2259ms,
  version: 2.6.6,
  storage_engine: mmapv1
},
{
  insert_500000_docs: 268692ms,
  build_fg_ascending: 2944ms,
  build_fg_descending: 2463ms,
  build_fg_random: 3369ms,
  build_fg_unique: 2591ms,
  build_fg_sparse: 2820ms,
  build_fg_multikey: 10759ms,
  build_fg_string: 3947ms,
  build_fg_text: 24254ms,
  build_fg_hash: 2511ms,
  version: 2.8.0-rc2,
  storage_engine: mmapv1
},
{
  insert_500000_docs: 271507ms,
  build_fg_ascending: 2569ms,
  build_fg_descending: 2552ms,
  build_fg_random: 3370ms,
  build_fg_unique: 2658ms,
  build_fg_sparse: 2803ms,
  build_fg_multikey: 11021ms,
  build_fg_string: 3989ms,
  build_fg_text: 25493ms,
  build_fg_hash: 2603ms,
  version: 2.8.0-rc4,
  storage_engine: mmapv1
},
{
  insert_500000_docs: 268413ms,
  build_fg_ascending: 2303ms,
  build_fg_descending: 2327ms,
  build_fg_random: 3274ms,
  build_fg_unique: 2499ms,
  build_fg_sparse: 2661ms,
  build_fg_multikey: 10371ms,
  build_fg_string: 3727ms,
  build_fg_text: 23728ms,
  build_fg_hash: 2394ms,
  version: 2.8.0-rc5,
  storage_engine: mmapv1
},
{
Cannot use commands write mode, degrading to compatibility mode
  insert_500000_docs: 288943ms,
  build_fg_ascending: 1960ms,
  build_fg_descending: 1981ms,
  build_fg_random: 2972ms,
  build_fg_unique: 2044ms,
  build_fg_sparse: 2303ms,
  build_fg_multikey: 11945ms,
  build_fg_string: 3345ms,
  build_fg_text: 221ms,
  build_fg_hash: 2202ms,
  version: 2.4.9,
  storage_engine: mmapv1
},
{
  insert_500000_docs: 254796ms,
  build_fg_ascending: 1772ms,
  build_fg_descending: 1610ms,
  build_fg_random: 2566ms,
  build_fg_unique: 1802ms,
  build_fg_sparse: 2022ms,
  build_fg_multikey: 8351ms,
  build_fg_string: 3122ms,
  build_fg_text: 20574ms,
  build_fg_hash: 1776ms,
  version: 2.8.0-rc5,
  storage_engine: wiredTiger
}



 Comments   
Comment by Githook User [ 22/Jan/15 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-16908 disable MMAPv1 rollback during fg index build, for perf
Branch: master
https://github.com/mongodb/mongo/commit/44fd8e4e903d65dceb583c84cc5ec430c9350ad8

Comment by Eric Milkie [ 20/Jan/15 ]

The perf loss appears to be in the new support for rollback added to mmap's journaling system. Working on some ideas now.

Comment by Daniel Pasette (Inactive) [ 18/Jan/15 ]

ramon.fernandez, what platform is your test run on? what startup params used?

Generated at Thu Feb 08 03:42:41 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.