[SERVER-37981] Remove unnecessary PlanExecutor saveState/restoreState for background index builds Created: 07/Nov/18 Updated: 08/Nov/18 Resolved: 08/Nov/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Louis Williams | Assignee: | Louis Williams |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Sprint: | Storage NYC 2018-11-19 |
| Participants: |
| Description |
|
The code in MultiIndexBlockImpl here that saves and restores the plan executor is unnecessary. In the case of yielding, PlanYieldPolicy::yield already saves and restores. In the case of WCEs, the try-catch block also handles saving and restoring. Removing can potentially speed up background index builds by 20%. |
| Comments |
| Comment by Louis Williams [ 08/Nov/18 ] |
|
This is incompatible with the current storage engine interface. Not all storage engines keep cursors positioned after commit. While this improves performance on the current background index build code, it is going away once all inserts go through the external sorter. |