summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexander Ignatyev <alexander.ignatyev@mongodb.com>2021-10-12 13:52:08 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-12 14:32:20 +0000
commit21a99fea6099eb8c9a2d9974dab755b0b103f559 (patch)
treef368d98d2a6e6b806ed6befee2457d26ac3f0a0f /src
parentd34e31b1cec0d4d672b5dab3e4e6697dad91bc92 (diff)
downloadmongo-21a99fea6099eb8c9a2d9974dab755b0b103f559.tar.gz
SERVER-60070 Add planCacheSize parameter validation
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/query/plan_cache_size_parameter.cpp4
-rw-r--r--src/mongo/db/query/plan_cache_size_parameter.h5
-rw-r--r--src/mongo/db/query/query_knobs.idl4
3 files changed, 12 insertions, 1 deletions
diff --git a/src/mongo/db/query/plan_cache_size_parameter.cpp b/src/mongo/db/query/plan_cache_size_parameter.cpp
index e79a2646673..46302c8334e 100644
--- a/src/mongo/db/query/plan_cache_size_parameter.cpp
+++ b/src/mongo/db/query/plan_cache_size_parameter.cpp
@@ -93,6 +93,10 @@ Status onPlanCacheSizeUpdate(const std::string& str) {
return Status::OK();
}
+Status validatePlanCacheSize(const std::string& str) {
+ return PlanCacheSizeParameter::parse(str).getStatus();
+}
+
const Decorable<ServiceContext>::Decoration<std::unique_ptr<PlanCacheSizeUpdater>>
sbePlanCacheSizeUpdaterDecoration =
ServiceContext::declareDecoration<std::unique_ptr<PlanCacheSizeUpdater>>();
diff --git a/src/mongo/db/query/plan_cache_size_parameter.h b/src/mongo/db/query/plan_cache_size_parameter.h
index 0bfe0b9cab1..ae3968e17e7 100644
--- a/src/mongo/db/query/plan_cache_size_parameter.h
+++ b/src/mongo/db/query/plan_cache_size_parameter.h
@@ -63,6 +63,11 @@ struct PlanCacheSizeParameter {
Status onPlanCacheSizeUpdate(const std::string& str);
/**
+ * Callback called on validation of planCacheSize parameter.
+ */
+Status validatePlanCacheSize(const std::string& str);
+
+/**
* Encapsulates a callback function used to update the PlanCache size when the planCacheSize
* parameter is updated.
*/
diff --git a/src/mongo/db/query/query_knobs.idl b/src/mongo/db/query/query_knobs.idl
index 3de5c9d773e..bd2b761be35 100644
--- a/src/mongo/db/query/query_knobs.idl
+++ b/src/mongo/db/query/query_knobs.idl
@@ -151,7 +151,9 @@ server_parameters:
cpp_vartype: synchronized_value<std::string>
default: "5%"
on_update: plan_cache_util::onPlanCacheSizeUpdate
-
+ validator:
+ callback: plan_cache_util::validatePlanCacheSize
+
#
# Parsing
#