summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/multi_plan.cpp
AgeCommit message (Collapse)Author
2024-08-08SERVER-92833: Move plan cache related files into plan_cache/ dir (#25460)James H
GitOrigin-RevId: 0676014a38d4a1c03884dcc99c062051fe99736e
2024-08-06SERVER-88047 remove SBE multiplanner (#24922)Zixuan
GitOrigin-RevId: 7d15031a6c8d34808e63b6d8aebe29579852df5d
2024-06-06SERVER-91230 Change SBE SubPlanner to write 'reads' instead of 'works' when ↵Ian Boros
planning entire query (#23031) GitOrigin-RevId: b6cd4868285890ec59ec0156375c4002d8c91c72
2024-05-21SERVER-90494 Change MultiPlanStage to write to plan cache via callback (#22205)David Storch
Co-authored-by: Ian Boros <ian.boros@mongodb.com> GitOrigin-RevId: 0a6457e8c1c120b9761b5bba7c1ff1fb5aca8d28
2024-04-17SERVER-73498 Fill queryPlanner.optimizationTimeMillis explain output (#20152)Carlos Alonso
GitOrigin-RevId: 3bf518d6c30352deaba953d12b79b1f3bb788d9d
2024-03-13SERVER-87377 Add replanReason in MultiPlanStats (#19843)Chi-I Huang
SERVER-87377 Add replanReason in MultiPlanStats When Classic Runtime Planner for SBE is enabled and CachedPlanner decides to replan a query, replanReason is missed when EOF optimization is used in MultiPlanner. This is because the explainer only access the stats from the underlying MultiPlanStage and its specific stats does not have that. This commit adds an optional field to allow the caller to pass in replanReason when MultiPlanStage is constructed and hence the reason can be propagated from CachedPlanner, MultiPlanner to MultiPlanStage. GitOrigin-RevId: d137bcb6155c9920a8390d3880d211d3f5a9f0fe
2024-03-01SERVER-85240 Correctly fill rejectedPlans and allPlansExecution when using ↵Daniel Segel
classic multi-planner with SBE (#18751) GitOrigin-RevId: a882cdaa0e60c92910df9f7953eed3754c9aaeef
2024-02-22SERVER-85963 Exit early and return results if best solution finished ↵Ivan Fefer
execution during multi planning (#19014) GitOrigin-RevId: 4d47c1234ee7e4f2f3f23e8bc22b5b6cac1774c0
2024-02-15SERVER-85248 Update SBE plan cache after Classic runtime planning (#18642)Chi-I Huang
GitOrigin-RevId: bdcc7ef3a8dbb7f3d0c452db4716c0ef6ca354d8
2024-02-14SERVER-82303 separate MetricsTree per Service (#17183)Billy Donahue
GitOrigin-RevId: 34052b162159b900c4a2daed02c8efbbb64531ed
2024-02-09SERVER-86150 Log QuerySolution hash when final plan is chosen (#18855)Alexander Ignatyev
SERVER-86150 Log QuerySolution hash when final plan is chosen Add an additional field containing the winning QuerySolution's hash to the existing log lines for the SBE and the Classic execution engines. GitOrigin-RevId: 7648b3f648c54761cfb4de68def11a430efb6466
2024-01-29SERVER-85235 Implement classic_runtime_planner_for_sbe::MultiPlanner (#18299)Adityavardhan Agrawal
GitOrigin-RevId: 7753e77b9d3949c083b4ec22d2f6feec987a7788
2023-12-28SERVER-82238 Add "isCached" field to winning and rejected plans in explain ↵Matthew Boros
(#15468) GitOrigin-RevId: 1ce84ae1bac7fc36edcabc29bad9abf6c3027bf2
2023-09-29SERVER-77158 apply performance-move-const-arg clang tidy rule for db/execMatt Boros
2023-09-23SERVER-81059 bulk-revert of include of boost iif.hppBilly Donahue
2023-06-27SERVER-77047 SERVER-77048 IWYU automated changes up to end ratio 0.8Daniel Moody
2023-06-22SERVER-78170 Modify read query stages to accept both CollectionPtr and ↵Jordi Olivares Provencio
ScopedCollectionAcquisition
2023-05-23SERVER-77327: replace verify() with MONGO_verify()Colin Stolley
2023-05-01SERVER-74521 Support clustered collections in SBEKevin Cherkauer
2023-01-20SERVER-72935 switch c stdlib headers to cpp compat stdlib headersDaniel Moody
2022-10-10SERVER-70394 Fix self-swap in MultiPlanStage::removeRejectedPlansIvan Fefer
2022-09-29SERVER-58712: Fix update performance on collections with multiple secondary ↵Ivan Fefer
indexes on same key
2022-08-18SERVER-66998 Do not allow WriteConflict exceptions to be thrown without contextFaustoleyva54
2022-07-27SERVER-67101 Support microsecond precision in ScopedTimerRuoxin Xu
2022-07-26Revert "SERVER-67101 Support microsecond precision in ScopedTimer"Ruoxin Xu
This reverts commit e7d2be0dae29265e2a6efafd4753debf11b9e96f.
2022-07-26SERVER-67101 Support microsecond precision in ScopedTimerRuoxin Xu
2022-07-12SERVER-65360 Handle TemporarilyUnavailableException in query execJosef Ahmad
This change attaches context to the plan executor in order to distinguish a yield request due to a write conflict from one due to a TemporarilyUnavailable error, and to handle the two cases accordingly in the query execution code.
2022-06-30SERVER-65987 ServerStatusMetric API refreshDaniel Morilha
2022-06-22SERVER-64432 Integrate SBE plan cache for $lookupRui Liu
2022-05-10SERVER-66205 Merge `WriteConflictException` and ↵Amirsaman Memaripour
`TemporarilyUnavailableException` into `assert_util.h`
2022-05-06SERVER-66203 move MONGO_LOGV2_DEFAULT_COMPONENT defs below includesBilly Donahue
2022-04-28SERVER-65984 add HistogramServerStatusMetric under db/exec/Billy Donahue
2022-04-09SERVER-63642 Add serverStatus histogram metrics to measure multi-planning ↵Jess Balint
performance
2022-04-07SERVER-65270 Fix bug related to queries on large documents not respecting ↵Ian Boros
the sort option
2022-02-09SERVER-63102 Introduce internalQueryPlanEvaluationWorksSber5.3.0-alpha3David Storch
The 'internalQueryPlanEvaluationWorks' parameter now only affects the classic engine. The newly added parameter has similar behavior, but applies only to queries using SBE.
2022-01-27SERVER-62981 Make SBE multi-planner trial period length independent of ↵David Storch
collection size This patch changes the 'internalQueryPlanEvaluationCollFraction' knob to apply only to the classic engine. It introduces a separate knob, 'internalQueryPlanEvaluationCollFractionSbe', which applies only to the SBE engine. The SBE knob has a default of 0, while the classic engine retains its default of 0.3. This ensures that by default, no candidate plan will ever do more than 10,000 storage reads during SBE multi-planning.
2021-12-01SERVER-29262 Retire usage of `OwnedPointerVector` in `write_ops`.Faustoleyva54
2021-11-03SERVER-60066 Remove plan cache entries on collection dropAlexander Ignatyev
2021-10-14SERVER-60338 Refine SBE query shape and implement plan cache key encodingRuoxin Xu
2021-09-24SERVER-59854 Remove PlanCacheIndexabilityState from the PlanCacheRuoxin Xu
This patch includes a number of changes to facilitate the use of PlanCacheIndexabilityState with SBE and classic plan cache keys. * Introduced a plan cache key factory. * Moved PlanCacheIndexabilityState from the PlanCache into CollectionQueryInfo. * Templetized QueryPlanner::planSubqueries() so it can be used with classic and SBE plan caches. * Removed dependency on the CanonicalQuery from the PlanCache class. Co-authored-by: Anton Korshunov <anton.korshunov@mongodb.com>
2021-09-02SERVER-59335 Separate code specific to the classic plan cache80741223+jlap199@users.noreply.github.com
2021-08-10SERVER-54083 Include scores calculated by PlanRanker in explain ↵Alice Doherty
"queryPlanner" output and/or "allPlansExecution"
2021-03-20SERVER-53238 [SBE] Include replanReason string into PlanSummaryStatsAnton Korshunov
2021-03-01SERVER-34200 Explain doesn't report stages which are above a MultiPlanStageTimour Katchaounov
- Change PlanExplainerImpl::getWinningPlanStats to not cut off the nodes on top of the MultiPlanStage. - Adapt all functions that process a tree of PlanStage or PlanStageStats for the purpose of Explain to skip the MultiPlan node, and jump to process its best plan child. - Pass the index of the multi-plan sub-plan that should be printed to various functions that print or linearize plans.
2020-12-01SERVER-48625 Add query knobs to explain output and logsTed Tuckman
2020-10-23SERVER-50743 Support generation of "planSummary" stats in SBEAnton Korshunov
2020-09-28SERVER-50946 Create PlanExplainer interface and implementationsAnton Korshunov
2020-09-26SERVER-50984 Add CollectionPtr to replace usage of const Collection*Henrik Edin
It implements a yieldable interface that is used to re-load the Collection pointer from the catalog after a yield that released locks. With lock-free reads and copy-on-write on Collection instances releasing locks without notifying an AutoGetCollection at a higher level may cause its pointers to dangle if a MODE_X writer installs a new Collection instance in the catalog. CollectionPtr should be passed by const reference so a yield can notify all the way up.
2020-08-20SERVER-48900 Remove format-string arguments from logv2 statementsMilena Ivanova
2020-06-11SERVER-48228 Move slot-based execution engine and supporting changes into ↵Martin Neupauer
the master branch This is an initial commit for the slot-based execution engine (SBE) which contains: * Implementation of the core slot-based engine. * The SBE stage builder, which is responsible for translating a QuerySolution tree into an SBE plan. * Other changes necessary for integration with the find command. Co-authored-by: Anton Korshunov <anton.korshunov@mongodb.com> Co-authored-by: Justin Seyster <justin.seyster@mongodb.com> Co-authored-by: David Storch <david.storch@mongodb.com>