summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommaso Tocci <tommaso.tocci@mongodb.com>2022-07-04 11:00:09 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-07-04 11:32:25 +0000
commitb31590bbcaa99e220bfbea6e40fc363ffaf6d82e (patch)
tree762794782cb03354d620e28d955e65f6bf6c481a
parent97b232efde7a010104aa91db945019f5f89f53dd (diff)
downloadmongo-b31590bbcaa99e220bfbea6e40fc363ffaf6d82e.tar.gz
SERVER-62338 Delete ReshardCollectionCoordinator_NORESILIENT once 6.0 branches out
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp15
-rw-r--r--src/mongo/db/s/reshard_collection_coordinator.cpp27
-rw-r--r--src/mongo/db/s/reshard_collection_coordinator.h11
-rw-r--r--src/mongo/db/s/sharding_ddl_coordinator.idl1
-rw-r--r--src/mongo/db/s/sharding_ddl_coordinator_service.cpp4
-rw-r--r--src/mongo/db/s/shardsvr_reshard_collection_command.cpp19
-rw-r--r--src/mongo/s/resharding/resharding_feature_flag.idl8
7 files changed, 7 insertions, 78 deletions
diff --git a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
index 6d51c8d73c7..7cd065c795a 100644
--- a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
+++ b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
@@ -87,7 +87,6 @@
#include "mongo/logv2/log.h"
#include "mongo/rpc/get_status_from_command_result.h"
#include "mongo/s/pm2423_feature_flags_gen.h"
-#include "mongo/s/resharding/resharding_feature_flag_gen.h"
#include "mongo/s/sharding_feature_flags_gen.h"
#include "mongo/stdx/unordered_set.h"
#include "mongo/util/exit.h"
@@ -704,20 +703,6 @@ private:
LOGV2(5876101, "Completed removal of internal sessions from config.transactions.");
}
- // TODO SERVER-62338 Remove when 6.0 branches-out
- if (serverGlobalParams.clusterRole == ClusterRole::ShardServer &&
- !resharding::gFeatureFlagRecoverableShardsvrReshardCollectionCoordinator
- .isEnabledOnVersion(requestedVersion)) {
- // No more (recoverable) ReshardCollectionCoordinators will start because we
- // have already switched the FCV value to kDowngrading. Wait for the ongoing
- // ReshardCollectionCoordinators to finish. The fact that the the configsvr has already
- // executed 'abortAllReshardCollection' after switching to kDowngrading FCV ensures that
- // ReshardCollectionCoordinators will finish (Interrupted) promptly.
- ShardingDDLCoordinatorService::getService(opCtx)
- ->waitForCoordinatorsOfGivenTypeToComplete(
- opCtx, DDLCoordinatorTypeEnum::kReshardCollection);
- }
-
// TODO SERVER-67392: Remove when 7.0 branches-out.
if (requestedVersion == GenericFCV::kLastLTS) {
NamespaceString indexCatalogNss;
diff --git a/src/mongo/db/s/reshard_collection_coordinator.cpp b/src/mongo/db/s/reshard_collection_coordinator.cpp
index c0c9648e0a4..e0dec68a1a6 100644
--- a/src/mongo/db/s/reshard_collection_coordinator.cpp
+++ b/src/mongo/db/s/reshard_collection_coordinator.cpp
@@ -108,8 +108,7 @@ ReshardCollectionCoordinator::ReshardCollectionCoordinator(ShardingDDLCoordinato
const BSONObj& initialState,
bool persistCoordinatorDocument)
: RecoverableShardingDDLCoordinator(service, "ReshardCollectionCoordinator", initialState),
- _request(_doc.getReshardCollectionRequest()),
- _persistCoordinatorDocument(persistCoordinatorDocument) {}
+ _request(_doc.getReshardCollectionRequest()) {}
void ReshardCollectionCoordinator::checkIfOptionsConflict(const BSONObj& doc) const {
const auto otherDoc = ReshardCollectionCoordinatorDocument::parse(
@@ -126,13 +125,6 @@ void ReshardCollectionCoordinator::appendCommandInfo(BSONObjBuilder* cmdInfoBuil
cmdInfoBuilder->appendElements(_request.toBSON());
}
-void ReshardCollectionCoordinator::_enterPhase(Phase newPhase) {
- if (!_persistCoordinatorDocument) {
- return;
- }
- RecoverableShardingDDLCoordinator::_enterPhase(newPhase);
-}
-
ExecutorFuture<void> ReshardCollectionCoordinator::_runImpl(
std::shared_ptr<executor::ScopedTaskExecutor> executor,
const CancellationToken& token) noexcept {
@@ -154,15 +146,10 @@ ExecutorFuture<void> ReshardCollectionCoordinator::_runImpl(
Grid::get(opCtx)->catalogCache()->getShardedCollectionRoutingInfoWithRefresh(
opCtx, nss()));
- if (_persistCoordinatorDocument) {
- StateDoc newDoc(_doc);
- newDoc.setOldShardKey(cmOld.getShardKeyPattern().getKeyPattern().toBSON());
- newDoc.setOldCollectionUUID(cmOld.getUUID());
- _updateStateDocument(opCtx, std::move(newDoc));
- } else {
- _doc.setOldShardKey(cmOld.getShardKeyPattern().getKeyPattern().toBSON());
- _doc.setOldCollectionUUID(cmOld.getUUID());
- }
+ StateDoc newDoc(_doc);
+ newDoc.setOldShardKey(cmOld.getShardKeyPattern().getKeyPattern().toBSON());
+ newDoc.setOldCollectionUUID(cmOld.getUUID());
+ _updateStateDocument(opCtx, std::move(newDoc));
ConfigsvrReshardCollection configsvrReshardCollection(nss(), _doc.getKey());
configsvrReshardCollection.setDbName(nss().db());
@@ -204,8 +191,4 @@ ExecutorFuture<void> ReshardCollectionCoordinator::_runImpl(
});
}
-ReshardCollectionCoordinator_NORESILIENT::ReshardCollectionCoordinator_NORESILIENT(
- ShardingDDLCoordinatorService* service, const BSONObj& initialState)
- : ReshardCollectionCoordinator(service, initialState, false /* persistCoordinatorDocument */) {}
-
} // namespace mongo
diff --git a/src/mongo/db/s/reshard_collection_coordinator.h b/src/mongo/db/s/reshard_collection_coordinator.h
index 085c183dc55..31e2512db6c 100644
--- a/src/mongo/db/s/reshard_collection_coordinator.h
+++ b/src/mongo/db/s/reshard_collection_coordinator.h
@@ -61,18 +61,7 @@ private:
ExecutorFuture<void> _runImpl(std::shared_ptr<executor::ScopedTaskExecutor> executor,
const CancellationToken& token) noexcept override;
- void _enterPhase(Phase newPhase);
-
const mongo::ReshardCollectionRequest _request;
-
- const bool _persistCoordinatorDocument; // TODO: SERVER-62338 remove this then 6.0 branches out
-};
-
-// TODO: SERVER-62338 remove this then 6.0 branches out
-class ReshardCollectionCoordinator_NORESILIENT : public ReshardCollectionCoordinator {
-public:
- ReshardCollectionCoordinator_NORESILIENT(ShardingDDLCoordinatorService* service,
- const BSONObj& initialState);
};
} // namespace mongo
diff --git a/src/mongo/db/s/sharding_ddl_coordinator.idl b/src/mongo/db/s/sharding_ddl_coordinator.idl
index 3a6b35e3eb4..14359fe8e42 100644
--- a/src/mongo/db/s/sharding_ddl_coordinator.idl
+++ b/src/mongo/db/s/sharding_ddl_coordinator.idl
@@ -52,7 +52,6 @@ enums:
kSetAllowMigrations: "setAllowMigrations"
kCollMod: "collMod_V2"
kReshardCollection: "reshardCollection"
- kReshardCollectionNoResilient: "reshardCollectionNoResilient"
kCompactStructuredEncryptionData: "compactStructuredEncryptionData"
types:
diff --git a/src/mongo/db/s/sharding_ddl_coordinator_service.cpp b/src/mongo/db/s/sharding_ddl_coordinator_service.cpp
index 3eccbcb3754..42bf4aced00 100644
--- a/src/mongo/db/s/sharding_ddl_coordinator_service.cpp
+++ b/src/mongo/db/s/sharding_ddl_coordinator_service.cpp
@@ -92,10 +92,6 @@ std::shared_ptr<ShardingDDLCoordinator> constructShardingDDLCoordinatorInstance(
case DDLCoordinatorTypeEnum::kReshardCollection:
return std::make_shared<ReshardCollectionCoordinator>(service, std::move(initialState));
break;
- case DDLCoordinatorTypeEnum::kReshardCollectionNoResilient:
- return std::make_shared<ReshardCollectionCoordinator_NORESILIENT>(
- service, std::move(initialState));
- break;
case DDLCoordinatorTypeEnum::kCompactStructuredEncryptionData:
return std::make_shared<CompactStructuredEncryptionDataCoordinator>(
service, std::move(initialState));
diff --git a/src/mongo/db/s/shardsvr_reshard_collection_command.cpp b/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
index 7902fa61b07..98850a1b511 100644
--- a/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
+++ b/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
@@ -32,11 +32,9 @@
#include "mongo/db/auth/authorization_session.h"
#include "mongo/db/commands.h"
-#include "mongo/db/commands/feature_compatibility_version.h"
#include "mongo/db/s/reshard_collection_coordinator.h"
#include "mongo/db/s/sharding_state.h"
#include "mongo/s/request_types/sharded_ddl_commands_gen.h"
-#include "mongo/s/resharding/resharding_feature_flag_gen.h"
#define MONGO_LOGV2_DEFAULT_COMPONENT ::mongo::logv2::LogComponent::kCommand
@@ -75,28 +73,15 @@ public:
CommandHelpers::uassertCommandRunWithMajority(Request::kCommandName,
opCtx->getWriteConcern());
- // (Generic FCV reference): To run this command and ensure the consistency of the
- // metadata we need to make sure we are on a stable state.
- uassert(
- ErrorCodes::CommandNotSupported,
- "Resharding is not supported for this version, please update the FCV to latest.",
- !serverGlobalParams.featureCompatibility.isUpgradingOrDowngrading());
const auto reshardCollectionCoordinatorCompletionFuture =
[&]() -> SharedSemiFuture<void> {
- FixedFCVRegion fixedFcvRegion(opCtx);
- const auto coordinatorType =
- resharding::gFeatureFlagRecoverableShardsvrReshardCollectionCoordinator
- .isEnabled(serverGlobalParams.featureCompatibility)
- ? DDLCoordinatorTypeEnum::kReshardCollection
- : DDLCoordinatorTypeEnum::kReshardCollectionNoResilient;
-
ReshardCollectionRequest reshardCollectionRequest =
request().getReshardCollectionRequest();
-
auto coordinatorDoc = ReshardCollectionCoordinatorDocument();
coordinatorDoc.setReshardCollectionRequest(std::move(reshardCollectionRequest));
- coordinatorDoc.setShardingDDLCoordinatorMetadata({{ns(), coordinatorType}});
+ coordinatorDoc.setShardingDDLCoordinatorMetadata(
+ {{ns(), DDLCoordinatorTypeEnum::kReshardCollection}});
auto service = ShardingDDLCoordinatorService::getService(opCtx);
auto reshardCollectionCoordinator =
diff --git a/src/mongo/s/resharding/resharding_feature_flag.idl b/src/mongo/s/resharding/resharding_feature_flag.idl
index aad768c184b..e83de02e286 100644
--- a/src/mongo/s/resharding/resharding_feature_flag.idl
+++ b/src/mongo/s/resharding/resharding_feature_flag.idl
@@ -40,11 +40,3 @@ feature_flags:
cpp_varname: gFeatureFlagResharding
default: true
version: 5.0
-
- featureFlagRecoverableShardsvrReshardCollectionCoordinator:
- description: When enabled, the db primary shard will use a recoverable
- ShardingDDLCoordinator that ensures proper serialization of resharding and other DDL
- operations even in the event of primary shard stepdowns.
- cpp_varname: gFeatureFlagRecoverableShardsvrReshardCollectionCoordinator
- default: true
- version: 5.3