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

Implement classic_runtime_planner_for_sbe::SubPlanner

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Query Execution
    • QE 2024-02-05, QE 2024-02-19
    • 2

    Description

      Ideally, when we do subplanning, we should:

      1. Plan subqueries by first trying to look them up in SBE plan cache and if it fails, using classic multi planner.
      2. Cache subqueries in SBE plan cache with PlanCachingMode::SometimesCache.
      3. Create a composite QuerySolution.
      4. Build and cache an SBE executor for the composite solution. The plan should be cached with isPinned:true.
      5. Run SBE executor.

      To do this as written, we need to expand SBE plan cache with some meta information, to be able to tag query with appropriate indexes, using cache entry, so we don't need to multi plan each branch of sub plan.

      If this proves too complex or require too much memory, we should just always multi plan each branch.

      Attachments

        Activity

          People

            adi.agrawal@mongodb.com Adi Agrawal
            ivan.fefer@mongodb.com Ivan Fefer
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: