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.
- is depended on by
-
SERVER-36662 Delete UpdateNotifier
- Closed
- related to
-
SERVER-17280 Geo near must pass invalidation messages to index scan used by DensityEstimator
- Closed
-
SERVER-20299 Delete KEEP_MUTATIONS stage
- Closed