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

Investigate whether ProjectStageCovered can reuse BSON buffer from index scan

    • Type: Icon: Task Task
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Optimization
    • QO 2024-04-15, QO 2024-04-29

      ProjectionStageCovered::transform will always allocate a new BSONObj to put fields in. Investigate whether we can re-use the BSON buffer from the index scan and shuffle around the bytes to avoid this allocation (in SERVER-87103, this accounts for ~50% of allocations in the workload). Since the projection is covering, we know that the BSON not get larger.

        1. heaptrack-baseline.svg
          976 kB
          Ben Shteinfeld
        2. heaptrack-keystring-allocations.svg
          1.13 MB
          Ben Shteinfeld

            Assignee:
            ben.shteinfeld@mongodb.com Ben Shteinfeld
            Reporter:
            ben.shteinfeld@mongodb.com Ben Shteinfeld
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: