summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKshitij Gupta <kshitij.gupta@mongodb.com>2021-03-16 13:59:17 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-03-18 18:24:28 +0000
commitfbb39fe5941ca3cbc6ce2623bd5e983ac83a0ba7 (patch)
tree11ef34cfe7cf5e6e7142219380653ecfbdd71414
parente16dbf0d24cbf1480469417098405f39daa0ebac (diff)
downloadmongo-fbb39fe5941ca3cbc6ce2623bd5e983ac83a0ba7.tar.gz
SERVER-53429: Log resharding coordinator state transitions to the changelog
-rw-r--r--src/mongo/db/s/resharding/resharding_coordinator_service.cpp23
-rw-r--r--src/mongo/db/s/resharding/resharding_coordinator_service.h2
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