-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
-
Query Execution
As a first step, we need to do testing to compare the performance of ABT’s way of constructing objects (newObj()+setField()) vs. the SBE Stage Builder (SERVER-62843).
We anticipate that ABT will be notably slower, because a naive lowering of ABT’s way of constructing objects will result in a lot of intermediate objects being created at run time.
Assuming this is the case, the next step will be to design and implement some analysis/optimization in “abt_lower.cpp” and “path_lower.cpp” that will optimize object construction.
As part of this task, we should also look at how the ABT->SBE lowering process should decide whether it's better to construct an SBE object or a BSON Object in a given context. Svilen has indicated that he would like it if there was some way that the new optimizer could optionally pass along information to help the ABT->SBE lowering process decide whether it's better to construct an SBE object or BSON object (this info could possibly be passed along through a "physical property" on the relevant node in the ABT.
- depends on
-
SERVER-62843 Manually measure perf of how ABT constructs BSON objects
- Closed