[SERVER-85137] Investigate having queries preemptively copy from the storage engine before a yield Created: 20/Jan/22 Updated: 13/Jan/24 Resolved: 22/Jul/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Ian Boros | Assignee: | Backlog - Storage Execution Team |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Assigned Teams: |
Storage Execution
|
||||
| Participants: | |||||
| Linked BF Score: | 135 | ||||
| Description |
|
With the "new yielding" behavior, the query system will not reset its storage cursors across getMores or yields, forcing the storage engine to "pin" the data these cursors are positioned at. This resulted in some performance regressions, explained in BF-24012. Here is a POC of the idea to have the query system preemptively copy data when it is known that either yield or a command will call saveState() momentarily. |
| Comments |
| Comment by Dianna Hohensee (Inactive) [ 22/Jul/22 ] |
|
This is finished. Investigation was done, and |