The KEEP_MUTATIONS query execution stage was originally intended to make a best effort at returning concurrently modified documents from queries against a node configured to use the MMAP storage engine. However, the necessity of this stage is dubious. My reading of the implementation is that is is only necessary if buffered documents are concurrently updated during the execution of an index intersection plan.
Deleting KEEP_MUTATIONS would be welcome code removal that would help to simplify some tricky pieces of the query planner and query execution engine.
- depends on
-
SERVER-35112 Remove MMAPv1 code
- Closed
- is related to
-
SERVER-16857 Remove PlanStage::invalidate()
- Closed
- related to
-
SERVER-15962 Planner should only add KEEP_MUTATIONS for plans that might flag invalidated results
- Closed
-
SERVER-21227 MultiPlanStage::invalidate() should not flag and drop invalidated WorkingSetMembers
- Closed