-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Strategies which combine CBR and MultiPlanner must combine explain data. This is currently done via "extract from planner, merge in CBR, pass to different planner".
This successfully brought CBR stats in to explain, but has caveats.
Some info can only be produced by either CBR or MP, but this distinction is lost during combination (e.g., CBR does not build exec stages, but populates structures in explain with nullptrs, relying on later code to build the stages on demand).
Before SERVER-128442, multiple copies of solutions would exist, leading to duplication and complex mapping by hash to update estimates maps. This can be resolved; SERVER-128442 leads to there being only a single copy of each solution.
Also before SERVER-128442, explain was required to take ownership of some solutions, but the exact set was only determinable by knowing the path taken to that point (was MP used, did a backup plan exist). Post SERVER-128442, explain does not require any ownership of solutions, so some structures may now be redundant.
Before SERVER-128883, CBR strategies would use a MultiPlanner, rather than a MultiPlanStage directly. This lead to ownership complexities, as MultiPlanner is also used directly; it must own sufficient state in the MP only path, but that leads to CBR surrendering and stealing back state. After SERVER-128883, this is no longer the case. Explain data can be changed to have a single owner during ranking where strategies can "register" their explain info.
- has to be done after
-
SERVER-128883 Move CBR strategies to use MultiPlanStage instead of MultiPlanner
-
- Backlog
-
- is related to
-
SERVER-128442 Simplify solution ownership in MultiPlanning under CBR
-
- In Code Review
-