[SERVER-19977] 30-50% performance regression in basic performance tests using mongo shell Created: 16/Aug/15 Updated: 15/Oct/15 Resolved: 07/Oct/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Shell |
| Affects Version/s: | None |
| Fix Version/s: | 3.2.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Bruce Lucas (Inactive) | Assignee: | Mira Carey |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Sprint: | Platform 8 08/28/15, Platform 9 (09/18/15), Platform A (10/09/15) |
| Participants: |
| Description |
|
Saw a 30-50% performance decline with a standalone mongod between 3.1.6 and the 08-15 daily build on 8 threads doing a simple insert workload (separate collections to facilitate mmapv1 testing, not essential to repro on WT):
Execution time in seconds:
Affects both WT and mmapv1. Git bisect identified 2a6a8f7cf32465da072e63ee9e1272907b6bfa54 as the first bad commit, related to changing the default JS engine to SpiderMonkey. |
| Comments |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message:
|
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Rather than a single tree of conditionals for object -> bson conversion, |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Rather than creating objects with stringified integer keys, just create |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Rather than storing a string with the encoded oid, just store a pointer |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message:
|
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message:
|
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Using StringMap over std::set<std::string> when checking for removed |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: toValue() for serializing to a value |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Small string optimization for encoding utf8 strings from JS strings on |
| Comment by Githook User [ 07/Oct/15 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Rather than supplying const char*'s throughout our use of the MozJS api, |
| Comment by Bruce Lucas (Inactive) [ 16/Aug/15 ] |
|
The issue here actually seems to be in the mongo shell - top shows mongo shell processes using 2x the CPU and the mongod process using 0.5 the CPU for the same test after the switch to SpiderMonkey. Confirmed by using an older shell with a recent mongod that the issue is with the shell. This is a problem to the extent that people use the shell for simple performance tests. |