-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
During the classic multiplanner trial period, each candidate plan stores the results it produces in BaseCandidatePlan::results. These buffered results are added by the MultiPlanStage and is not measured or tracked anywhere:
- It is not added to the operation's memory tracker, so it does not show up in peakTrackedMemBytes (slow query log, profiler, $currentOp, query stats).
- There are no serverStatus metric reports it, so it is not visible in FTDC. The only memory-related multiplanner metric is query.multiPlanner.allPlansHitMemoryLimit but this only counts failures and not the actual memory usage.
Open question: How much memory is reported by the blocking stages of the plans being multiplanned? How do we avoid double counting that here?