[SERVER-20303] Negative scaling at low thread count under WiredTiger when inserting large documents Created: 05/Sep/15 Updated: 11/Jan/16 Resolved: 10/Oct/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | WiredTiger |
| Affects Version/s: | 3.0.6, 3.1.7 |
| Fix Version/s: | 3.0.8, 3.2.0-rc0 |
| Type: | Bug | Priority: | Critical - P2 |
| Reporter: | Bruce Lucas (Inactive) | Assignee: | Keith Bostic (Inactive) |
| Resolution: | Done | Votes: | 1 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||
| Backport Completed: | |||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
Following graph shows 5 successive runs (with mongod restart between each run) at 1, 2, 4, 8 and 16 client threads:
Following gdbmon profile showing two consecutive runs with 2 and 16 threads respectively:
In the second half of the timeline, showing the run with 16 client threads,
|
| Comments |
| Comment by Daniel Pasette (Inactive) [ 10/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Verified this fix after the latest WT code drop on a 24 core box. Before: After: | |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 06/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'}Message: Merge pull request #2236 from wiredtiger/ (cherry picked from commit f12d478229822ee19b5767e05e73083adbe095f4) | |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 06/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'}Message: Merge pull request #2236 from wiredtiger/ (cherry picked from commit f12d478229822ee19b5767e05e73083adbe095f4) | |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 01/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'}Message: Merge pull request #2233 from wiredtiger/
| |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 01/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'}Message: Merge pull request #2233 from wiredtiger/
| |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 01/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'}Message: Merge pull request #2236 from wiredtiger/
| |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 01/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith.bostic@mongodb.com'}Message: Merge pull request #2236 from wiredtiger/
| |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 01/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: | |||||||||||||||||||||||||||||||||
| Comment by Githook User [ 01/Oct/15 ] | |||||||||||||||||||||||||||||||||
|
Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'}Message: | |||||||||||||||||||||||||||||||||
| Comment by Alexander Gorrod [ 29/Sep/15 ] | |||||||||||||||||||||||||||||||||
|
> an in-memory split only ever results in 2 pages, we just create a new page and move the tail of the insert list to it. I always forget that - I tangle up "split" with reconciliation split. In that case I see even less reason to worry about the number of items on a page. | |||||||||||||||||||||||||||||||||
| Comment by Bruce Lucas (Inactive) [ 06/Sep/15 ] | |||||||||||||||||||||||||||||||||
|
Here's the repro script:
Did a quick comparison of several versions, saw little difference: 3.0.0 3.0.6 3.1.0 3.1.7 latest |