[SERVER-16745] Force fetching documents on saveState() should be an exec stage Created: 06/Jan/15 Updated: 03/Feb/16 Resolved: 27/Oct/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | David Storch | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Participants: |
| Description |
|
Doc-locking storage engines must force fetch documents when they yield: yielding invalidates the OperationContext, which allows documents keyed by RecordIds in a query's WorkingSet to be deleted or modified. Force fetching prevents queries from seeing these modifications when they resume with a new OperationContext. Moving this force fetching logic into a query execution stage will allow us to expose diagnostics/statistics regarding force fetching via existing mechanisms (e.g. explain and the profiler). |
| Comments |
| Comment by David Storch [ 27/Oct/15 ] |
|
The behavior of force-fetching while preparing for a yield was eliminated under |