diff options
-rw-r--r-- | src/mongo/db/commands/get_cluster_parameter_invocation.cpp | 73 | ||||
-rw-r--r-- | src/mongo/db/commands/get_cluster_parameter_invocation.h | 7 | ||||
-rw-r--r-- | src/mongo/idl/cluster_server_parameter.idl | 6 | ||||
-rw-r--r-- | src/mongo/s/commands/cluster_get_cluster_parameter_cmd.cpp | 14 | ||||
-rw-r--r-- | src/mongo/s/mongos_main.cpp | 5 |
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); |