diff options
Diffstat (limited to 'src/mongo/db/s/reshard_collection_coordinator.cpp')
-rw-r--r-- | src/mongo/db/s/reshard_collection_coordinator.cpp | 48 |
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()); |