summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/sharding_initialization_mongod.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/sharding_initialization_mongod.cpp')
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp72
1 files changed, 8 insertions, 64 deletions
diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp
index 9a4caf90e93..be5483b21db 100644
--- a/src/mongo/db/s/sharding_initialization_mongod.cpp
+++ b/src/mongo/db/s/sharding_initialization_mongod.cpp
@@ -38,7 +38,6 @@
#include "mongo/client/replica_set_monitor.h"
#include "mongo/db/audit.h"
#include "mongo/db/catalog_raii.h"
-#include "mongo/db/catalog_shard_feature_flag_gen.h"
#include "mongo/db/client_metadata_propagation_egress_hook.h"
#include "mongo/db/concurrency/d_concurrency.h"
#include "mongo/db/dbhelpers.h"
@@ -49,7 +48,6 @@
#include "mongo/db/ops/update.h"
#include "mongo/db/repl/replication_coordinator.h"
#include "mongo/db/s/chunk_splitter.h"
-#include "mongo/db/s/config/sharding_catalog_manager.h"
#include "mongo/db/s/periodic_balancer_config_refresher.h"
#include "mongo/db/s/read_only_catalog_cache_loader.h"
#include "mongo/db/s/shard_local.h"
@@ -57,11 +55,9 @@
#include "mongo/db/s/transaction_coordinator_service.h"
#include "mongo/db/server_options.h"
#include "mongo/db/vector_clock_metadata_hook.h"
-#include "mongo/executor/network_interface_factory.h"
#include "mongo/executor/task_executor_pool.h"
#include "mongo/logv2/log.h"
#include "mongo/rpc/metadata/egress_metadata_hook_list.h"
-#include "mongo/s/catalog/sharding_catalog_client_impl.h"
#include "mongo/s/catalog_cache.h"
#include "mongo/s/client/shard_factory.h"
#include "mongo/s/client/shard_remote.h"
@@ -122,15 +118,6 @@ public:
LOGV2(471692, "Unable to update the shard registry", "error"_attr = e);
}
- auto const shardingState = ShardingState::get(_serviceContext);
- if (!shardingState->enabled()) {
- // If our sharding state isn't enabled, we don't have a shard identity document, so
- // there's nothing to update. Note technically this may race with the config server
- // being added as a shard, but that shouldn't be a problem since addShard will use a
- // valid connection string and should serialize with a replica set reconfig.
- return;
- }
-
auto setName = connStr.getSetName();
bool updateInProgress = false;
{
@@ -502,15 +489,8 @@ void ShardingInitializationMongoD::updateShardIdentityConfigString(
}
void ShardingInitializationMongoD::onSetCurrentConfig(OperationContext* opCtx) {
- if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer ||
- !gFeatureFlagConfigServerAlwaysShardRemote.isEnabledAndIgnoreFCV()) {
- // Only config servers capable of acting as a shard set up the config shard in their shard
- // registry with a real connection string.
- return;
- }
-
- auto myConnectionString = repl::ReplicationCoordinator::get(opCtx)->getConfigConnectionString();
- Grid::get(opCtx)->shardRegistry()->initConfigShardIfNecessary(myConnectionString);
+ // TODO SERVER-72088: Use the connection string from the config to construct a ShardRemote for
+ // the config server when in catalog shard mode.
}
void ShardingInitializationMongoD::onInitialDataAvailable(OperationContext* opCtx,
@@ -527,42 +507,10 @@ void ShardingInitializationMongoD::onInitialDataAvailable(OperationContext* opCt
}
}
-void initializeGlobalShardingStateForConfigServer(OperationContext* opCtx) {
- ShardingInitializationMongoD::get(opCtx)->installReplicaSetChangeListener(
- opCtx->getServiceContext());
-
- auto configCS = []() -> boost::optional<ConnectionString> {
- if (gFeatureFlagConfigServerAlwaysShardRemote.isEnabledAndIgnoreFCV()) {
- // When the config server can operate as a shard, it sets up a ShardRemote for the
- // config shard, which is created later after loading the local replica set config.
- return boost::none;
- }
- return {ConnectionString::forLocal()};
- }();
-
- initializeGlobalShardingStateForMongoD(opCtx, ShardId::kConfigServerId, configCS);
-
- // ShardLocal to use for explicitly local commands on the config server.
- auto localConfigShard = Grid::get(opCtx)->shardRegistry()->createLocalConfigShard();
- auto localCatalogClient = std::make_unique<ShardingCatalogClientImpl>(localConfigShard);
-
- ShardingCatalogManager::create(
- opCtx->getServiceContext(),
- makeShardingTaskExecutor(executor::makeNetworkInterface("AddShard-TaskExecutor")),
- std::move(localConfigShard),
- std::move(localCatalogClient));
-
- if (!gFeatureFlagCatalogShard.isEnabledAndIgnoreFCV()) {
- Grid::get(opCtx)->setShardingInitialized();
- }
-}
-
void initializeGlobalShardingStateForMongoD(OperationContext* opCtx,
const ShardId& shardId,
- const boost::optional<ConnectionString>& configCS) {
- if (configCS) {
- uassert(ErrorCodes::BadValue, "Unrecognized connection string.", *configCS);
- }
+ const ConnectionString& configCS) {
+ uassert(ErrorCodes::BadValue, "Unrecognized connection string.", configCS);
auto targeterFactory = std::make_unique<RemoteCommandTargeterFactoryImpl>();
auto targeterFactoryPtr = targeterFactory.get();
@@ -654,20 +602,16 @@ void initializeGlobalShardingStateForMongoD(OperationContext* opCtx,
}
}
-
-void ShardingInitializationMongoD::installReplicaSetChangeListener(ServiceContext* service) {
- _replicaSetChangeListener =
- ReplicaSetMonitor::getNotifier().makeListener<ShardingReplicaSetChangeListener>(service);
-}
-
void ShardingInitializationMongoD::_initializeShardingEnvironmentOnShardServer(
OperationContext* opCtx, const ShardIdentity& shardIdentity) {
- installReplicaSetChangeListener(opCtx->getServiceContext());
+ _replicaSetChangeListener =
+ ReplicaSetMonitor::getNotifier().makeListener<ShardingReplicaSetChangeListener>(
+ opCtx->getServiceContext());
initializeGlobalShardingStateForMongoD(opCtx,
shardIdentity.getShardName().toString(),
- {shardIdentity.getConfigsvrConnectionString()});
+ shardIdentity.getConfigsvrConnectionString());
// Determine primary/secondary/standalone state in order to properly initialize sharding
// components.