-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
v8.0
-
QO 2024-04-01, QO 2024-04-15, QO 2024-04-29, QO 2024-05-13, QO 2024-05-27, QO 2024-06-10, QO 2024-06-24, QO 2024-07-08, QO 2024-07-22, QO 2024-08-05, QO 2024-08-19, QO 2024-09-02
-
144
Historically, we create another planner inside already existing one to replan cached plan:
We were unable to just throw an exception, because at this point we already owned CanonicalQuery and throwing an exception would cause us to destroy it.
However, now that we can throw exceptions to restart planning without query settings, we can do the same for replanning: instead of having custom and complex replanning logic, let's just invalidate cache entry and restart query planning process by throwing ReplanningException with replanReason field.
This assumes that replanning is pretty exception thing to happen.
- depends on
-
SERVER-87798 Make classic runtime planners for SBE not throw in `makeExecutor()` methods
- Closed
-
SERVER-85242 Ensure the robustness of the 'QuerySettings' fallback mechanism
- Closed
- is depended on by
-
SERVER-87467 Support triggering replanning via exception in classic_runtime_planner::CachedPlanner
- Needs Scheduling
- related to
-
SERVER-95060 Queries with hash join are always replanned using multi-planner
- Backlog