-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Execution
During the investigation in SERVER-51657 in became clear that the process of SBE plan construction for a query can take a lot of time. In case of point queries that process small amount of data we have noticed up to 30% performance regression when comparing SBE with classic engine because of that.
There are several strategies to address this which were discuss by SBE team:
- Implement caching of the whole SBE plan. Suggested by martin.neupauer
- SBE builders allocate a lot of expressions/PlanStages and very rarely delete them. Often they are deleted only after the plan was executed, all at once. It seems like a good use case for a simple bump allocator. Suggested by nikita.lapkov, anton.korshunov and ian.boros
Both strategies require a lot of engineering effort, so we should carefully choose between them (or explore other ways to improve the performance of SBE builders).