-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Optimization
SERVER-62434 is adding a new query optimizer based on the Cascades architecture. For the time being, this new subsystem is called the "new optimizer" or the "Cascades optimizer". We've had some discussion on the team about renaming the optimizer in order to make it easier to refer to. The team proposed several alternative names and the ultimate winner was the "Bonsai Optimizer".
The work of the ticket is to
- identify places where we refer to our specific optimizer implementation in a generic way (e.g. "the optimizer"). We need to distinguish from the name of the algorithm itself which is Cascades, and its description, and associated data structures are not subject to renaming. The "optimizer" is a more encapsulating term which captures Cascades, Paths, ABT, and other specific algorithms or approaches collectively. As such the names Cascades and Bonsai would coexist.
- As appropriate introduce the new name in places referring to the collective implementation (as opposed to individual algorithms or approaches).
A few examples.
1.
// Disable Cascades branch-and-bound strategy
This comment should not be renamed to Bonsai since it is describing a strategy specific to the algorithm Cascades.
2.
std::unique_ptr<PlanExecutor, PlanExecutor::Deleter> getSBEExecutorViaCascadesOptimizer(
May be considered for renaming to Bonsai since it executes the entire optimizer "stack", including algorithms other than Cascades.
3. Existing namespace "optimizer" may be considered for renaming to "bonsai", however the nested namespace "cascades" holds Cascades algorithms (including the Memo) and should stay unchanged. Similar arguments hold for the directory structure.
- depends on
-
SERVER-62434 Implement query optimizer based on Path algebra and Cascades
- Closed