[SERVER-16857] Remove PlanStage::invalidate() Created: 14/Jan/15 Updated: 29/Aug/18 Resolved: 29/Aug/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | None |
| Fix Version/s: | 4.1.3 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | J Rassi | Assignee: | David Storch |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||
| Sprint: | Query 2018-08-27, Query 2018-09-10 | ||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
|
Due to the introduction of storage engines that can perform writes without holding an exclusive collection lock comes, the query invalidation mechanism is now deprecated. In its replacement, the query engine now tags certain working set members during a yield as possibly having out-of-date object contents. This tagging is currently not performed for the MMAPv1 storage engine, but it should be. Once that is done, we can remove the PlanStage::invalidate() method and the KeepMutations query stage. On MMAPv1, we would still need to preserve some mechanism for document deletion to advance all RecordIterators pointing to that document (since it is not currently possible for a RecordIterator to figure out where to advance to if it is pointing to a deleted document). CursorManager::invalidateDocument() would need to be changed to use this new mechanism. |
| Comments |
| Comment by Githook User [ 29/Aug/18 ] |
|
Author: {'name': 'David Storch', 'email': 'david.storch@10gen.com', 'username': 'dstorch'}Message:
|
| Comment by David Storch [ 04/Sep/15 ] |
|
I am proposing to remove the KEEP_MUTATIONS stage, but not PlanStage::invalidate(), as a separate work item under |