[SERVER-48477] Clean up PlanExecutor interface for SBE Created: 28/May/20  Updated: 29/Oct/23  Resolved: 31/Aug/20

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

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

Issue Links:
Duplicate
is duplicated by SERVER-48553 Ensure data never transits through Do... Closed
Problem/Incident
Related
related to SERVER-49784 PlanExecutorImpl::getNext should only... Closed
Backwards Compatibility: Fully Compatible
Sprint: Query 2020-08-24, Query 2020-09-07
Participants:
Linked BF Score: 0

 Description   

With the introduction of the slot-based execution (SBE) engine, the server will support two completely unrelated query execution engines. Luckily, PlanExecutor, the type which represents a query execution plan, was already an interface. However, some of the interface methods involved details of the pre-existing execution engine. We should narrow the interface so that it only contains methods which make sense for both the slot-based engine and the "classic" engine. For example, PlanExecutor::getRootStage() returns a pointer to a "classic" PlanStage, and therefore does not make sense in the context of SBE.



 Comments   
Comment by Githook User [ 31/Aug/20 ]

Author:

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

Message: SERVER-48477 move CRUD interface into PlanExecutor

This allows classic PlanStages to be removed from the
PlanExecutor interface. It also positions the code base well
for adding SBE support for all of the CRUD commands.
Branch: master
https://github.com/mongodb/mongo/commit/c70016c56f4f34ba09f4975fbf5bb3ac5129b5f7

Comment by David Storch [ 16/Jul/20 ]

The remaining work here is waiting until SERVER-48478 is complete.

Comment by Githook User [ 09/Jul/20 ]

Author:

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

Message: SERVER-48477 Make PlanExecutor interface more generic

After this change, the interface is sensible for both the classic
and SBE engines (with the exception of 'getRootStage()' which is left
as future work).
Branch: master
https://github.com/mongodb/mongo/commit/a58d7ea75368b103a7f493c0ff6035b9a099b88d

Comment by Githook User [ 09/Jul/20 ]

Author:

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

Message: SERVER-48477 Update mqlrun to adapt to changes in PlanExecutor interface
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/c0880a1aa3d8ec0b81c149d1d399866f9317354c

Generated at Thu Feb 08 05:17:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.