[SERVER-20299] Delete KEEP_MUTATIONS stage Created: 04/Sep/15  Updated: 02/Aug/18  Resolved: 02/Aug/18

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 4.1.2

Type: Improvement Priority: Major - P3
Reporter: David Storch Assignee: David Storch
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-35112 Remove MMAPv1 code Closed
Related
related to SERVER-15962 Planner should only add KEEP_MUTATION... Closed
related to SERVER-21227 MultiPlanStage::invalidate() should n... Closed
is related to SERVER-16857 Remove PlanStage::invalidate() Closed
Backwards Compatibility: Fully Compatible
Sprint: Quint 9 09/18/15, QuInt E (01/11/16), Query 2018-07-30, Query 2018-08-13
Participants:

 Description   

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.



 Comments   
Comment by Githook User [ 02/Aug/18 ]

Author:

{'username': 'dstorch', 'name': 'David Storch', 'email': 'david.storch@10gen.com'}

Message: SERVER-20299 Remove CANNOT_TRIM_IXISECT parameter.

With the removal of MMAPv1, this is no longer important.
This changes the planner to always avoid trimming exact
predicates for IXISECT plans.
Branch: master
https://github.com/mongodb/mongo/commit/fa888e7c0183debdb0b2b77fc2d55b6cc7238c2d

Comment by Githook User [ 02/Aug/18 ]

Author:

{'username': 'dstorch', 'name': 'David Storch', 'email': 'david.storch@10gen.com'}

Message: SERVER-20299 Delete KEEP_MUTATIONS stage.

Removes the associated flagForReview() mechanism from
WorkingSet.
Branch: master
https://github.com/mongodb/mongo/commit/51589a332a0e557b6080f38dc605e2e2fa3740b6

Comment by David Storch [ 06/Jun/18 ]

Re-opening this issue. The KEEP_MUTATIONS stage is only needed for the MMAPv1 storage engine, and it should be deleted once we no longer support MMAPv1.

Comment by David Storch [ 07/Jan/16 ]

After further discussion, we are closing this ticket as Won't Fix. There is a legitimate purpose for KEEP_MUTATIONS to support the execution of the index intersection PlanStages. Unnecessary uses of KEEP_MUTATIONS have already been removed. SERVER-15962 will involve further cleanup work in this area.

Generated at Thu Feb 08 03:53:47 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.