[SERVER-21027] Reduced performance of index lookups after removing documents from collection Created: 20/Oct/15 Updated: 07/Dec/15 Resolved: 12/Nov/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Performance, WiredTiger |
| Affects Version/s: | 3.0.7 |
| Fix Version/s: | 3.0.8, 3.2.0-rc3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Bruce Lucas (Inactive) | Assignee: | Michael Cahill (Inactive) |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||
| Backport Completed: | |||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
|
This ticket is a spinoff from
Referring to the stack trace in the referenced comment, the underlying cause seems to be slow WT search_near operations requiring tree walks, even though the table should be empty. The impact on user-level operations depends on the amount of overhead before getting to the WT layer in the path by which the query is done, but in the particular repro referenced above, declines of 15-50% were seen, depending on the number of documents inserted then removed. That path has a fair amount of overhead outside WT, so impact could be substantially higher if there are operations that do repeated lookups with low code path overhead outside WT. |
| Comments |
| Comment by Githook User [ 30/Nov/15 ] |
|
Author: {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'}Message: Import wiredtiger-wiredtiger-mongodb-3.0.7-9-gdeb2d81.tar.gz from wiredtiger branch mongodb-3.0 ref: cb64236..deb2d81 deb2d81 |
| Comment by Githook User [ 27/Nov/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Merge pull request #2330 from wiredtiger/reverse-splits-3.0_2
|
| Comment by Githook User [ 27/Nov/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Merge pull request #2278 from wiredtiger/
(cherry picked from commit ba931c1) |
| Comment by Githook User [ 27/Nov/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Merge pull request #2278 from wiredtiger/
(cherry picked from commit ba931c1) |
| Comment by Githook User [ 27/Nov/15 ] |
|
Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'}Message: Merge pull request #2271 from wiredtiger/reverse-split-fix
(cherry picked from commit f4d20a3) |
| Comment by Githook User [ 27/Nov/15 ] |
|
Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'}Message: Merge pull request #2260 from wiredtiger/reverse-splits
(cherry picked from commit 35d46c3) Conflicts: |
| Comment by Githook User [ 30/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Merge pull request #2278 from wiredtiger/
|
| Comment by Githook User [ 30/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Merge pull request #2278 from wiredtiger/
|
| Comment by Githook User [ 30/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: |
| Comment by Githook User [ 30/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'}Message: Merge pull request #2271 from wiredtiger/reverse-split-fix
|
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Otherwise, a reverse split could race with eviction of the internal page. |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexander.gorrod@mongodb.com'}Message: Merge pull request #2260 from wiredtiger/reverse-splits
|
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Instantiating empty pages is only required during searches, and then only so (cherry picked from commit fe015e3d2e5564603d50c34ea1145fb0e5dca52e) |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: Specifically, if we notice a parent page has a multiple of 10 deleted children, try to do a reverse split to discard those child pages. (cherry picked from commit dc84744680d0071f5d6f39a755e2dc6d6ece7b1a) |
| Comment by Githook User [ 29/Oct/15 ] |
|
Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}Message: (cherry picked from commit 2b89b915cafb86e2aa22b72948f5e411597831c0) |