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

Explore ways to improve SBE plans generation performance

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Backlog
    • Major - P3
    • Resolution: Unresolved
    • None
    • None
    • None
    • Query Execution

    Description

      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).

      Attachments

        Activity

          People

            backlog-query-execution Backlog - Query Execution
            nikita.lapkov@mongodb.com Nikita Lapkov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated: