summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/commands/get_cluster_parameter_invocation.cpp73
-rw-r--r--src/mongo/db/commands/get_cluster_parameter_invocation.h7
-rw-r--r--src/mongo/idl/cluster_server_parameter.idl6
-rw-r--r--src/mongo/s/commands/cluster_get_cluster_parameter_cmd.cpp14
-rw-r--r--src/mongo/s/mongos_main.cpp5
5 files changed, 7 insertions, 98 deletions
diff --git a/src/mongo/db/commands/get_cluster_parameter_invocation.cpp b/src/mongo/db/commands/get_cluster_parameter_invocation.cpp
index 7d827971f00..89a0b2bc5a0 100644
--- a/src/mongo/db/commands/get_cluster_parameter_invocation.cpp
+++ b/src/mongo/db/commands/get_cluster_parameter_invocation.cpp
@@ -134,77 +134,4 @@ GetClusterParameterInvocation::Reply GetClusterParameterInvocation::getCachedPar
return Reply(parameterValues);
}
-GetClusterParameterInvocation::Reply GetClusterParameterInvocation::getDurableParameters(
- OperationContext* opCtx, const GetClusterParameter& request) {
- auto configServers = Grid::get(opCtx)->shardRegistry()->getConfigShard();
-
- // Create the query document such that all documents in config.clusterParmeters with _id
- // in the requested list of ServerParameters are returned.
- const CmdBody& cmdBody = request.getCommandParameter();
- ServerParameterSet* clusterParameters = ServerParameterSet::getClusterParameterSet();
-
- BSONObjBuilder queryDocBuilder;
- BSONObjBuilder inObjBuilder = queryDocBuilder.subobjStart("_id"_sd);
- BSONArrayBuilder parameterNameBuilder = inObjBuilder.subarrayStart("$in"_sd);
-
- auto [requestedParameterNames, parameterValues] = retrieveRequestedParameters(
- opCtx, cmdBody, request.getDbName().tenantId(), false /* excludeClusterParameterTime */);
-
- for (const auto& parameterValue : parameterValues) {
- parameterNameBuilder.append(parameterValue["_id"_sd].String());
- }
-
- parameterNameBuilder.doneFast();
- inObjBuilder.doneFast();
-
- // Perform the majority read on the config server primary.
- BSONObj query = queryDocBuilder.obj();
- LOGV2_DEBUG(6226101, 2, "Querying config servers for cluster parameters", "query"_attr = query);
- auto findResponse = uassertStatusOK(configServers->exhaustiveFindOnConfig(
- opCtx,
- ReadPreferenceSetting{ReadPreference::PrimaryOnly},
- repl::ReadConcernLevel::kMajorityReadConcern,
- NamespaceString::makeClusterParametersNSS(request.getDbName().tenantId()),
- query,
- BSONObj(),
- boost::none));
-
- // Any parameters that are not included in the response don't have a cluster parameter
- // document yet, which means they still are using the default value.
- std::vector<BSONObj> retrievedParameters = std::move(findResponse.docs);
- if (retrievedParameters.size() < requestedParameterNames.size()) {
- std::vector<std::string> onDiskParameterNames;
- onDiskParameterNames.reserve(retrievedParameters.size());
- std::transform(
- retrievedParameters.begin(),
- retrievedParameters.end(),
- std::back_inserter(onDiskParameterNames),
- [&](const auto& onDiskParameter) { return onDiskParameter["_id"_sd].String(); });
-
- // Sort and find the set difference of the requested parameters and the parameters
- // returned.
- std::vector<std::string> defaultParameterNames;
-
- defaultParameterNames.reserve(requestedParameterNames.size() - onDiskParameterNames.size());
-
- std::sort(onDiskParameterNames.begin(), onDiskParameterNames.end());
- std::sort(requestedParameterNames.begin(), requestedParameterNames.end());
- std::set_difference(requestedParameterNames.begin(),
- requestedParameterNames.end(),
- onDiskParameterNames.begin(),
- onDiskParameterNames.end(),
- std::back_inserter(defaultParameterNames));
-
- for (const auto& defaultParameterName : defaultParameterNames) {
- auto defaultParameter = clusterParameters->get(defaultParameterName);
- BSONObjBuilder bob;
- defaultParameter->append(
- opCtx, &bob, defaultParameterName, request.getDbName().tenantId());
- retrievedParameters.push_back(bob.obj());
- }
- }
-
- return Reply(retrievedParameters);
-}
-
} // namespace mongo
diff --git a/src/mongo/db/commands/get_cluster_parameter_invocation.h b/src/mongo/db/commands/get_cluster_parameter_invocation.h
index 374341994ba..fae4963a218 100644
--- a/src/mongo/db/commands/get_cluster_parameter_invocation.h
+++ b/src/mongo/db/commands/get_cluster_parameter_invocation.h
@@ -43,14 +43,9 @@ public:
GetClusterParameterInvocation() = default;
- // Retrieves in-memory parameters. Used by mongod getClusterParameter and mongoses
- // with featureFlagClusterWideConfigM2 enabled.
+ // Retrieves in-memory parameters.
Reply getCachedParameters(OperationContext* opCtx, const GetClusterParameter& request);
- // Retrieves durable cluster server parameters from config server. Used by mongoses with
- // featureFlagClusterWideConfigM2 disabled.
- Reply getDurableParameters(OperationContext* opCtx, const GetClusterParameter& request);
-
private:
// Parses the command body and retrieves the BSON representation and names of the requested
// cluster parameters for the given tenant.
diff --git a/src/mongo/idl/cluster_server_parameter.idl b/src/mongo/idl/cluster_server_parameter.idl
index 216193190c8..25224c7bab7 100644
--- a/src/mongo/idl/cluster_server_parameter.idl
+++ b/src/mongo/idl/cluster_server_parameter.idl
@@ -87,12 +87,6 @@ structs:
default: 0
feature_flags:
- featureFlagClusterWideConfigM2:
- description: Mechanism for cluster-wide configuration options, milestone 2
- cpp_varname: gFeatureFlagClusterWideConfigM2
- default: true
- version: 6.1
- shouldBeFCVGated: true
featureFlagClusterWideToaster:
description: Feature flag for testing use of feature flags with CW server params
cpp_varname: gFeatureFlagClusterWideToaster
diff --git a/src/mongo/s/commands/cluster_get_cluster_parameter_cmd.cpp b/src/mongo/s/commands/cluster_get_cluster_parameter_cmd.cpp
index d0539898b96..f684cf804b6 100644
--- a/src/mongo/s/commands/cluster_get_cluster_parameter_cmd.cpp
+++ b/src/mongo/s/commands/cluster_get_cluster_parameter_cmd.cpp
@@ -73,17 +73,11 @@ public:
Reply typedRun(OperationContext* opCtx) {
GetClusterParameterInvocation invocation;
- if (gFeatureFlagClusterWideConfigM2.isEnabled(
- serverGlobalParams.featureCompatibility)) {
- // Refresh cached cluster server parameters via a majority read from the config
- // servers.
- uassertStatusOK(
- ClusterServerParameterRefresher::get(opCtx)->refreshParameters(opCtx));
+ // Refresh cached cluster server parameters via a majority read from the config
+ // servers.
+ uassertStatusOK(ClusterServerParameterRefresher::get(opCtx)->refreshParameters(opCtx));
- return invocation.getCachedParameters(opCtx, request());
- }
-
- return invocation.getDurableParameters(opCtx, request());
+ return invocation.getCachedParameters(opCtx, request());
}
private:
diff --git a/src/mongo/s/mongos_main.cpp b/src/mongo/s/mongos_main.cpp
index c6d086c17ba..5688d9ae894 100644
--- a/src/mongo/s/mongos_main.cpp
+++ b/src/mongo/s/mongos_main.cpp
@@ -812,9 +812,8 @@ ExitCode runMongosServer(ServiceContext* serviceContext) {
clusterCursorCleanupJob.go();
UserCacheInvalidator::start(serviceContext, opCtx);
- if (gFeatureFlagClusterWideConfigM2.isEnabled(serverGlobalParams.featureCompatibility)) {
- ClusterServerParameterRefresher::start(serviceContext, opCtx);
- }
+
+ ClusterServerParameterRefresher::start(serviceContext, opCtx);
if (audit::initializeSynchronizeJob) {
audit::initializeSynchronizeJob(serviceContext);