summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/reshard_collection_coordinator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/reshard_collection_coordinator.cpp')
-rw-r--r--src/mongo/db/s/reshard_collection_coordinator.cpp48
1 files changed, 5 insertions, 43 deletions
diff --git a/src/mongo/db/s/reshard_collection_coordinator.cpp b/src/mongo/db/s/reshard_collection_coordinator.cpp
index 30ff299e538..c0c9648e0a4 100644
--- a/src/mongo/db/s/reshard_collection_coordinator.cpp
+++ b/src/mongo/db/s/reshard_collection_coordinator.cpp
@@ -107,10 +107,7 @@ ReshardCollectionCoordinator::ReshardCollectionCoordinator(ShardingDDLCoordinato
ReshardCollectionCoordinator::ReshardCollectionCoordinator(ShardingDDLCoordinatorService* service,
const BSONObj& initialState,
bool persistCoordinatorDocument)
- : ShardingDDLCoordinator(service, initialState),
- _initialState(initialState.getOwned()),
- _doc(ReshardCollectionCoordinatorDocument::parse(
- IDLParserErrorContext("ReshardCollectionCoordinatorDocument"), _initialState)),
+ : RecoverableShardingDDLCoordinator(service, "ReshardCollectionCoordinator", initialState),
_request(_doc.getReshardCollectionRequest()),
_persistCoordinatorDocument(persistCoordinatorDocument) {}
@@ -125,50 +122,15 @@ void ReshardCollectionCoordinator::checkIfOptionsConflict(const BSONObj& doc) co
_request.toBSON() == otherDoc.getReshardCollectionRequest().toBSON()));
}
-boost::optional<BSONObj> ReshardCollectionCoordinator::reportForCurrentOp(
- MongoProcessInterface::CurrentOpConnectionsMode connMode,
- MongoProcessInterface::CurrentOpSessionsMode sessionMode) noexcept {
- BSONObjBuilder cmdBob;
- if (const auto& optComment = getForwardableOpMetadata().getComment()) {
- cmdBob.append(optComment.get().firstElement());
- }
- cmdBob.appendElements(_request.toBSON());
-
- BSONObjBuilder bob;
- bob.append("type", "op");
- bob.append("desc", "ReshardCollectionCoordinator");
- bob.append("op", "command");
- bob.append("ns", nss().toString());
- bob.append("command", cmdBob.obj());
- bob.append("active", true);
- return bob.obj();
+void ReshardCollectionCoordinator::appendCommandInfo(BSONObjBuilder* cmdInfoBuilder) const {
+ cmdInfoBuilder->appendElements(_request.toBSON());
}
void ReshardCollectionCoordinator::_enterPhase(Phase newPhase) {
if (!_persistCoordinatorDocument) {
return;
}
-
- StateDoc newDoc(_doc);
- newDoc.setPhase(newPhase);
-
- LOGV2_DEBUG(6206400,
- 2,
- "Reshard collection coordinator phase transition",
- "namespace"_attr = nss(),
- "newPhase"_attr = ReshardCollectionCoordinatorPhase_serializer(newDoc.getPhase()),
- "oldPhase"_attr = ReshardCollectionCoordinatorPhase_serializer(_doc.getPhase()));
-
- if (_doc.getPhase() == Phase::kUnset) {
- newDoc = _insertStateDocument(std::move(newDoc));
- } else {
- newDoc = _updateStateDocument(cc().makeOperationContext().get(), std::move(newDoc));
- }
-
- {
- stdx::unique_lock ul{_docMutex};
- _doc = std::move(newDoc);
- }
+ RecoverableShardingDDLCoordinator::_enterPhase(newPhase);
}
ExecutorFuture<void> ReshardCollectionCoordinator::_runImpl(
@@ -196,7 +158,7 @@ ExecutorFuture<void> ReshardCollectionCoordinator::_runImpl(
StateDoc newDoc(_doc);
newDoc.setOldShardKey(cmOld.getShardKeyPattern().getKeyPattern().toBSON());
newDoc.setOldCollectionUUID(cmOld.getUUID());
- _doc = _updateStateDocument(opCtx, std::move(newDoc));
+ _updateStateDocument(opCtx, std::move(newDoc));
} else {
_doc.setOldShardKey(cmOld.getShardKeyPattern().getKeyPattern().toBSON());
_doc.setOldCollectionUUID(cmOld.getUUID());