Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-53970

Explore ways to improve SBE plans generation performance

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 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).

            Assignee:
            backlog-query-execution [DO NOT USE] Backlog - Query Execution
            Reporter:
            nikita.lapkov@mongodb.com Nikita Lapkov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: