[SERVER-48378] Expose settings of query knobs in agg explain output Created: 21/May/20 Updated: 29/Oct/23 Resolved: 04/Mar/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Aggregation Framework |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | David Storch | Assignee: | Timour Katchaounov |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Sprint: | Query Optimization 2021-02-22, Query Optimization 2021-03-08 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Various agg stages are subject to internal limits, defined as setParameters in query_knobs.idl. alex.bevilacqua would find it useful if these values were reported in agg explain. Since these are static settings rather than runtime stats, I think they would be reported at any explain verbosity level ("queryPlanner", "executionStats", or "allPlansExecution"). In particular, exposing at least following would be useful:
Before scheduling this ticket, we should choose the exact set of knobs we want to expose in explain, and we should choose the names with which we want to expose them. |
| Comments |
| Comment by Githook User [ 04/Mar/21 ] | |||||||||||||||
|
Author: {'name': 'Timour Katchaounov', 'email': 'timour.katchaounov@mongodb.com'}Message: Added a top-level section in the explain that shows the most | |||||||||||||||
| Comment by Alex Bevilacqua [ 17/Feb/21 ] | |||||||||||||||
|
timour.katchaounov serverParameters seems appropriate. | |||||||||||||||
| Comment by Timour Katchaounov [ 17/Feb/21 ] | |||||||||||||||
|
After a quick look I suggest to add the following "knobs" based on prior experience:
Since these values are exposed to users, IMO there should be no "internal" prefix in the visible names. On the other hand they have to be easy to relate (ideally automatically) to the internal name. Therefore as a start I'll name them the same, but without the "internal" prefix. Someone with more experience can suggest better names before merging. I suggest that these are reported as a separate sub-document that is added after "serverInfo". Is "serverParameters" a good name for this sub-document? For instance:
alex.bevilacqua, david.storch may I have a quick opinion from you, so I can start working on this? |