diff options
-rw-r--r-- | src/mongo/db/s/resharding/resharding_coordinator_service.cpp | 23 | ||||
-rw-r--r-- | src/mongo/db/s/resharding/resharding_coordinator_service.h | 2 |
2 files changed, 19 insertions, 6 deletions
diff --git a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp index 7811e6db54a..6c0b2c63a4a 100644 --- a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp +++ b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp @@ -40,6 +40,7 @@ #include "mongo/db/s/resharding/resharding_metrics.h" #include "mongo/db/s/resharding/resharding_server_parameters_gen.h" #include "mongo/db/s/resharding_util.h" +#include "mongo/db/s/sharding_logging.h" #include "mongo/db/s/sharding_util.h" #include "mongo/db/storage/duplicate_key_error_info.h" #include "mongo/db/vector_clock.h" @@ -831,9 +832,21 @@ ReshardingCoordinatorService::ReshardingCoordinator::~ReshardingCoordinator() { } void ReshardingCoordinatorService::ReshardingCoordinator::installCoordinatorDoc( - const ReshardingCoordinatorDocument& doc) { + OperationContext* opCtx, const ReshardingCoordinatorDocument& doc) { invariant(doc.getReshardingUUID() == _coordinatorDoc.getReshardingUUID()); + BSONObjBuilder bob; + bob.append("newState", CoordinatorState_serializer(doc.getState())); + bob.append("oldState", CoordinatorState_serializer(_coordinatorDoc.getState())); + bob.append("namespace", doc.getSourceNss().toString()); + bob.append("collectionUUID", doc.getSourceUUID().toString()); + bob.append("reshardingUUID", doc.getReshardingUUID().toString()); + ShardingLogging::get(opCtx)->logChange(opCtx, + "resharding.coordinator.transition", + doc.getSourceNss().toString(), + bob.obj(), + ShardingCatalogClient::kMajorityWriteConcern); + LOGV2_INFO(5343001, "Transitioned resharding coordinator state", "newState"_attr = CoordinatorState_serializer(doc.getState()), @@ -1023,7 +1036,7 @@ void ReshardingCoordinatorService::ReshardingCoordinator::_insertCoordDocAndChan updatedCoordinatorDoc.setState(CoordinatorStateEnum::kInitializing); resharding::insertCoordDocAndChangeOrigCollEntry(opCtx.get(), updatedCoordinatorDoc); - installCoordinatorDoc(updatedCoordinatorDoc); + installCoordinatorDoc(opCtx.get(), updatedCoordinatorDoc); // TODO SERVER-53914 to accommodate loading metrics for the coordinator. ReshardingMetrics::get(cc().getServiceContext())->onStart(); @@ -1058,7 +1071,7 @@ void ReshardingCoordinatorService::ReshardingCoordinator:: updatedCoordinatorDoc, std::move(shardsAndChunks.initialChunks), std::move(zones)); - installCoordinatorDoc(updatedCoordinatorDoc); + installCoordinatorDoc(opCtx.get(), updatedCoordinatorDoc); }; @@ -1209,7 +1222,7 @@ Future<void> ReshardingCoordinatorService::ReshardingCoordinator::_persistDecisi opCtx.get(), updatedCoordinatorDoc, newCollectionEpoch, newCollectionTimestamp); // Update the in memory state - installCoordinatorDoc(updatedCoordinatorDoc); + installCoordinatorDoc(opCtx.get(), updatedCoordinatorDoc); return Status::OK(); }; @@ -1257,7 +1270,7 @@ void ReshardingCoordinatorService::ReshardingCoordinator:: updatedCoordinatorDoc); // Update in-memory coordinator doc - installCoordinatorDoc(updatedCoordinatorDoc); + installCoordinatorDoc(opCtx.get(), updatedCoordinatorDoc); } void ReshardingCoordinatorService::ReshardingCoordinator::_tellAllRecipientsToRefresh( diff --git a/src/mongo/db/s/resharding/resharding_coordinator_service.h b/src/mongo/db/s/resharding/resharding_coordinator_service.h index 1e689b2781b..7880d2ffc9c 100644 --- a/src/mongo/db/s/resharding/resharding_coordinator_service.h +++ b/src/mongo/db/s/resharding/resharding_coordinator_service.h @@ -141,7 +141,7 @@ public: /** * Replace in-memory representation of the CoordinatorDoc */ - void installCoordinatorDoc(const ReshardingCoordinatorDocument& doc); + void installCoordinatorDoc(OperationContext* opCtx, const ReshardingCoordinatorDocument& doc); /** * Returns a Future that will be resolved when all work associated with this Instance has |