[ABT] Optimize how we construct objects

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Won't Do
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            [DO NOT USE] Backlog - Query Execution
            Reporter:
            Drew Paroski
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: