-
Type:
Improvement
-
Resolution: Duplicate
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Optimization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Right now replanning manually enumerates plans, creates a MultiPlanStage, runs the trials, and picks the best plan. This is basically what the normal query planning code path does, and this can probably be consolidated. One idea I had was that when we decide that we want to replan, we can throw some exception back to get_executor.cpp so that we re-enter the normal planning flow and we don't have to repeat this code.
Note that we would also have pass some information via the exception (or however else we decide to get back to normal planning), since replanning does a few extra things (not an exhaustive list):
- generates a replanReason
- checks to see if the cached plan is the same as the new plan
- duplicates
-
SERVER-87466 Trigger replanning by throwing an exception, instead of creating another planner
-
- In Code Review
-
- is related to
-
SERVER-87466 Trigger replanning by throwing an exception, instead of creating another planner
-
- In Code Review
-
-
SERVER-116351 Invoke CBR during replanning
-
- In Code Review
-