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

Implement classic_runtime_planner_for_sbe::SubPlanner

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • Fully Compatible
    • QE 2024-02-05, QE 2024-02-19
    • 2

      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.

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

              Created:
              Updated:
              Resolved: