diff options
Diffstat (limited to 'src/mongo')
42 files changed, 99 insertions, 45 deletions
diff --git a/src/mongo/db/auth/auth_op_observer.cpp b/src/mongo/db/auth/auth_op_observer.cpp index 8101bf43dbe..4d18f183fc3 100644 --- a/src/mongo/db/auth/auth_op_observer.cpp +++ b/src/mongo/db/auth/auth_op_observer.cpp @@ -55,7 +55,8 @@ void AuthOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { for (auto it = first; it != last; it++) { audit::logInsertOperation(opCtx->getClient(), coll->ns(), it->doc); AuthorizationManager::get(opCtx->getServiceContext()) diff --git a/src/mongo/db/auth/auth_op_observer.h b/src/mongo/db/auth/auth_op_observer.h index da491ed46ea..8f350b53b1a 100644 --- a/src/mongo/db/auth/auth_op_observer.h +++ b/src/mongo/db/auth/auth_op_observer.h @@ -96,7 +96,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/catalog/rename_collection_test.cpp b/src/mongo/db/catalog/rename_collection_test.cpp index e32837f0c4e..6cc5fc5b6a7 100644 --- a/src/mongo/db/catalog/rename_collection_test.cpp +++ b/src/mongo/db/catalog/rename_collection_test.cpp @@ -105,7 +105,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; void onCreateCollection(OperationContext* opCtx, const CollectionPtr& coll, @@ -213,7 +214,8 @@ void OpObserverMock::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (onInsertsThrows) { uasserted(ErrorCodes::OperationFailed, "insert failed"); } diff --git a/src/mongo/db/commands/mr_test.cpp b/src/mongo/db/commands/mr_test.cpp index 72a571bea09..b90edd8dc9e 100644 --- a/src/mongo/db/commands/mr_test.cpp +++ b/src/mongo/db/commands/mr_test.cpp @@ -265,7 +265,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; /** * Tracks the temporary collections mapReduces creates. @@ -323,7 +324,8 @@ void MapReduceOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { onInsertsFn(); } diff --git a/src/mongo/db/free_mon/free_mon_op_observer.cpp b/src/mongo/db/free_mon/free_mon_op_observer.cpp index 929b1ae5b65..b28e39bf2a0 100644 --- a/src/mongo/db/free_mon/free_mon_op_observer.cpp +++ b/src/mongo/db/free_mon/free_mon_op_observer.cpp @@ -76,7 +76,8 @@ void FreeMonOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns() != NamespaceString::kServerConfigurationNamespace) { return; } diff --git a/src/mongo/db/free_mon/free_mon_op_observer.h b/src/mongo/db/free_mon/free_mon_op_observer.h index ae96bd0dd43..807b00ee5dc 100644 --- a/src/mongo/db/free_mon/free_mon_op_observer.h +++ b/src/mongo/db/free_mon/free_mon_op_observer.h @@ -96,7 +96,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/op_observer/fcv_op_observer.cpp b/src/mongo/db/op_observer/fcv_op_observer.cpp index a00aa4bbd8b..3e48aa5ebbc 100644 --- a/src/mongo/db/op_observer/fcv_op_observer.cpp +++ b/src/mongo/db/op_observer/fcv_op_observer.cpp @@ -166,7 +166,8 @@ void FcvOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns().isServerConfigurationCollection()) { for (auto it = first; it != last; it++) { _onInsertOrUpdate(opCtx, it->doc); diff --git a/src/mongo/db/op_observer/fcv_op_observer.h b/src/mongo/db/op_observer/fcv_op_observer.h index 11e6b857be0..e00eaef0875 100644 --- a/src/mongo/db/op_observer/fcv_op_observer.h +++ b/src/mongo/db/op_observer/fcv_op_observer.h @@ -54,7 +54,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/op_observer/op_observer.h b/src/mongo/db/op_observer/op_observer.h index 2bef534e7f6..37df60beab6 100644 --- a/src/mongo/db/op_observer/op_observer.h +++ b/src/mongo/db/op_observer/op_observer.h @@ -61,6 +61,10 @@ struct OpStateAccumulator { OpTimeBundle opTime; }; +struct InsertsOpStateAccumulator { + std::vector<repl::OpTime> opTimes; +}; + enum class RetryableFindAndModifyLocation { // The operation is not retryable, or not a "findAndModify" command. Do not record a // pre-image. @@ -204,7 +208,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) = 0; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) = 0; virtual void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/op_observer/op_observer_impl.cpp b/src/mongo/db/op_observer/op_observer_impl.cpp index e315c9ec95e..15aa42df6f6 100644 --- a/src/mongo/db/op_observer/op_observer_impl.cpp +++ b/src/mongo/db/op_observer/op_observer_impl.cpp @@ -722,7 +722,8 @@ void OpObserverImpl::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { auto txnParticipant = TransactionParticipant::get(opCtx); const bool inMultiDocumentTransaction = txnParticipant && opCtx->writesAreReplicated() && txnParticipant.transactionIsOpen(); @@ -818,6 +819,10 @@ void OpObserverImpl::onInserts(OperationContext* opCtx, onWriteOpCompleted(opCtx, stmtIdsWritten, sessionTxnRecord); } + if (opAccumulator) { + opAccumulator->opTimes = opTimeList; + } + shardObserveInsertsOp(opCtx, nss, first, diff --git a/src/mongo/db/op_observer/op_observer_impl.h b/src/mongo/db/op_observer/op_observer_impl.h index 0ce3c8326d8..f8fd262d8a0 100644 --- a/src/mongo/db/op_observer/op_observer_impl.h +++ b/src/mongo/db/op_observer/op_observer_impl.h @@ -102,7 +102,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/op_observer/op_observer_noop.h b/src/mongo/db/op_observer/op_observer_noop.h index 756dd823a07..055b8ac28c4 100644 --- a/src/mongo/db/op_observer/op_observer_noop.h +++ b/src/mongo/db/op_observer/op_observer_noop.h @@ -88,7 +88,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override {} + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override {} void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, const UUID& globalIndexUuid, diff --git a/src/mongo/db/op_observer/op_observer_registry.h b/src/mongo/db/op_observer/op_observer_registry.h index 429ed5170c7..131b01f59c4 100644 --- a/src/mongo/db/op_observer/op_observer_registry.h +++ b/src/mongo/db/op_observer/op_observer_registry.h @@ -152,10 +152,13 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override { ReservedTimes times{opCtx}; + InsertsOpStateAccumulator opStateAccumulator; for (auto& o : _observers) - o->onInserts(opCtx, coll, begin, end, fromMigrate, defaultFromMigrate); + o->onInserts( + opCtx, coll, begin, end, fromMigrate, defaultFromMigrate, &opStateAccumulator); } void onInsertGlobalIndexKey(OperationContext* opCtx, diff --git a/src/mongo/db/op_observer/user_write_block_mode_op_observer.cpp b/src/mongo/db/op_observer/user_write_block_mode_op_observer.cpp index 8e5b7123c10..b195148ab15 100644 --- a/src/mongo/db/op_observer/user_write_block_mode_op_observer.cpp +++ b/src/mongo/db/op_observer/user_write_block_mode_op_observer.cpp @@ -52,7 +52,8 @@ void UserWriteBlockModeOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { const auto& nss = coll->ns(); if (!defaultFromMigrate) { diff --git a/src/mongo/db/op_observer/user_write_block_mode_op_observer.h b/src/mongo/db/op_observer/user_write_block_mode_op_observer.h index 911e07d9d8b..f352084f09e 100644 --- a/src/mongo/db/op_observer/user_write_block_mode_op_observer.h +++ b/src/mongo/db/op_observer/user_write_block_mode_op_observer.h @@ -54,7 +54,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/repl/oplog_applier_impl_test_fixture.cpp b/src/mongo/db/repl/oplog_applier_impl_test_fixture.cpp index aa4db4d20bb..9630d21ab19 100644 --- a/src/mongo/db/repl/oplog_applier_impl_test_fixture.cpp +++ b/src/mongo/db/repl/oplog_applier_impl_test_fixture.cpp @@ -60,7 +60,8 @@ void OplogApplierImplOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (!onInsertsFn) { return; } diff --git a/src/mongo/db/repl/oplog_applier_impl_test_fixture.h b/src/mongo/db/repl/oplog_applier_impl_test_fixture.h index 24f87f3e99a..fdd36472208 100644 --- a/src/mongo/db/repl/oplog_applier_impl_test_fixture.h +++ b/src/mongo/db/repl/oplog_applier_impl_test_fixture.h @@ -79,7 +79,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; /** * This function is called whenever OplogApplierImpl deletes a document from a collection. diff --git a/src/mongo/db/repl/primary_only_service_op_observer.h b/src/mongo/db/repl/primary_only_service_op_observer.h index 92b5c1fb960..020992903d8 100644 --- a/src/mongo/db/repl/primary_only_service_op_observer.h +++ b/src/mongo/db/repl/primary_only_service_op_observer.h @@ -98,7 +98,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final {} + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final {} void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/repl/shard_merge_recipient_op_observer.cpp b/src/mongo/db/repl/shard_merge_recipient_op_observer.cpp index 5eb37dd0a73..2f6ba5e7afd 100644 --- a/src/mongo/db/repl/shard_merge_recipient_op_observer.cpp +++ b/src/mongo/db/repl/shard_merge_recipient_op_observer.cpp @@ -363,7 +363,8 @@ void ShardMergeRecipientOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns() == NamespaceString::kShardMergeRecipientsNamespace) { onShardMergeRecipientsNssInsert(opCtx, first, last); return; diff --git a/src/mongo/db/repl/shard_merge_recipient_op_observer.h b/src/mongo/db/repl/shard_merge_recipient_op_observer.h index 4302e1b9653..0a5fe4b9304 100644 --- a/src/mongo/db/repl/shard_merge_recipient_op_observer.h +++ b/src/mongo/db/repl/shard_merge_recipient_op_observer.h @@ -95,7 +95,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/repl/tenant_collection_cloner_test.cpp b/src/mongo/db/repl/tenant_collection_cloner_test.cpp index b04132dfe08..44bbc35ae6c 100644 --- a/src/mongo/db/repl/tenant_collection_cloner_test.cpp +++ b/src/mongo/db/repl/tenant_collection_cloner_test.cpp @@ -93,7 +93,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final { if (coll->ns() == nssToCapture) { numDocsInserted += std::distance(begin, end); } diff --git a/src/mongo/db/repl/tenant_migration_donor_op_observer.cpp b/src/mongo/db/repl/tenant_migration_donor_op_observer.cpp index 41989ccaec2..d242483d5b5 100644 --- a/src/mongo/db/repl/tenant_migration_donor_op_observer.cpp +++ b/src/mongo/db/repl/tenant_migration_donor_op_observer.cpp @@ -238,7 +238,8 @@ void TenantMigrationDonorOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns() == NamespaceString::kTenantMigrationDonorsNamespace && !tenant_migration_access_blocker::inRecoveryMode(opCtx)) { for (auto it = first; it != last; it++) { diff --git a/src/mongo/db/repl/tenant_migration_donor_op_observer.h b/src/mongo/db/repl/tenant_migration_donor_op_observer.h index 5d2f494d487..2906ef518ba 100644 --- a/src/mongo/db/repl/tenant_migration_donor_op_observer.h +++ b/src/mongo/db/repl/tenant_migration_donor_op_observer.h @@ -96,7 +96,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/repl/tenant_migration_recipient_op_observer.cpp b/src/mongo/db/repl/tenant_migration_recipient_op_observer.cpp index 1fcb9deff34..76bb689d143 100644 --- a/src/mongo/db/repl/tenant_migration_recipient_op_observer.cpp +++ b/src/mongo/db/repl/tenant_migration_recipient_op_observer.cpp @@ -178,7 +178,8 @@ void TenantMigrationRecipientOpObserver::onInserts( std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns() == NamespaceString::kTenantMigrationRecipientsNamespace && !tenant_migration_access_blocker::inRecoveryMode(opCtx)) { for (auto it = first; it != last; it++) { diff --git a/src/mongo/db/repl/tenant_migration_recipient_op_observer.h b/src/mongo/db/repl/tenant_migration_recipient_op_observer.h index 70c8d33d3da..90875e2f43d 100644 --- a/src/mongo/db/repl/tenant_migration_recipient_op_observer.h +++ b/src/mongo/db/repl/tenant_migration_recipient_op_observer.h @@ -97,7 +97,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/s/config_server_op_observer.cpp b/src/mongo/db/s/config_server_op_observer.cpp index 8fb62c69503..857fa8597f5 100644 --- a/src/mongo/db/s/config_server_op_observer.cpp +++ b/src/mongo/db/s/config_server_op_observer.cpp @@ -111,7 +111,8 @@ void ConfigServerOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns().isServerConfigurationCollection()) { auto idElement = begin->doc["_id"]; if (idElement.type() == BSONType::String && diff --git a/src/mongo/db/s/config_server_op_observer.h b/src/mongo/db/s/config_server_op_observer.h index d2976dbd095..0d68158e9de 100644 --- a/src/mongo/db/s/config_server_op_observer.h +++ b/src/mongo/db/s/config_server_op_observer.h @@ -99,7 +99,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/s/query_analysis_op_observer.cpp b/src/mongo/db/s/query_analysis_op_observer.cpp index e3b8f82f79d..98e61019eb3 100644 --- a/src/mongo/db/s/query_analysis_op_observer.cpp +++ b/src/mongo/db/s/query_analysis_op_observer.cpp @@ -51,7 +51,8 @@ void QueryAnalysisOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (analyze_shard_key::supportsCoordinatingQueryAnalysis(opCtx)) { if (coll->ns() == NamespaceString::kConfigQueryAnalyzersNamespace) { for (auto it = begin; it != end; ++it) { diff --git a/src/mongo/db/s/query_analysis_op_observer.h b/src/mongo/db/s/query_analysis_op_observer.h index 6ccb34d0fd6..b0845a4be03 100644 --- a/src/mongo/db/s/query_analysis_op_observer.h +++ b/src/mongo/db/s/query_analysis_op_observer.h @@ -96,7 +96,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/s/range_deleter_service_op_observer.cpp b/src/mongo/db/s/range_deleter_service_op_observer.cpp index 85ea0002623..d0b99ed2d9b 100644 --- a/src/mongo/db/s/range_deleter_service_op_observer.cpp +++ b/src/mongo/db/s/range_deleter_service_op_observer.cpp @@ -91,7 +91,8 @@ void RangeDeleterServiceOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns() == NamespaceString::kRangeDeletionNamespace) { for (auto it = begin; it != end; ++it) { auto deletionTask = RangeDeletionTask::parse( diff --git a/src/mongo/db/s/range_deleter_service_op_observer.h b/src/mongo/db/s/range_deleter_service_op_observer.h index db8d4594e20..968d6a9d7d9 100644 --- a/src/mongo/db/s/range_deleter_service_op_observer.h +++ b/src/mongo/db/s/range_deleter_service_op_observer.h @@ -50,7 +50,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/s/resharding/resharding_op_observer.cpp b/src/mongo/db/s/resharding/resharding_op_observer.cpp index 3ddc9d984f8..013cbee9121 100644 --- a/src/mongo/db/s/resharding/resharding_op_observer.cpp +++ b/src/mongo/db/s/resharding/resharding_op_observer.cpp @@ -184,7 +184,8 @@ void ReshardingOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { const auto& nss = coll->ns(); if (nss == NamespaceString::kDonorReshardingOperationsNamespace) { diff --git a/src/mongo/db/s/resharding/resharding_op_observer.h b/src/mongo/db/s/resharding/resharding_op_observer.h index be6ce3e1728..2289f537b06 100644 --- a/src/mongo/db/s/resharding/resharding_op_observer.h +++ b/src/mongo/db/s/resharding/resharding_op_observer.h @@ -114,7 +114,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/s/resharding/resharding_service_test_helpers.h b/src/mongo/db/s/resharding/resharding_service_test_helpers.h index 5151d035897..399b3b791be 100644 --- a/src/mongo/db/s/resharding/resharding_service_test_helpers.h +++ b/src/mongo/db/s/resharding/resharding_service_test_helpers.h @@ -154,7 +154,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override { if (coll->ns() != _stateDocumentNss) { return; } diff --git a/src/mongo/db/s/shard_server_op_observer.cpp b/src/mongo/db/s/shard_server_op_observer.cpp index 39878a64023..4d9464544a3 100644 --- a/src/mongo/db/s/shard_server_op_observer.cpp +++ b/src/mongo/db/s/shard_server_op_observer.cpp @@ -181,7 +181,8 @@ void ShardServerOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { const auto& nss = coll->ns(); for (auto it = begin; it != end; ++it) { diff --git a/src/mongo/db/s/shard_server_op_observer.h b/src/mongo/db/s/shard_server_op_observer.h index 7e1542874a0..2a292ac10cf 100644 --- a/src/mongo/db/s/shard_server_op_observer.h +++ b/src/mongo/db/s/shard_server_op_observer.h @@ -96,7 +96,8 @@ public: std::vector<InsertStatement>::const_iterator begin, std::vector<InsertStatement>::const_iterator end, std::vector<bool> fromMigrate, - bool defaultFromMigrate) override; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) override; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/serverless/shard_split_donor_op_observer.cpp b/src/mongo/db/serverless/shard_split_donor_op_observer.cpp index 80175dcd6d0..3a42b624148 100644 --- a/src/mongo/db/serverless/shard_split_donor_op_observer.cpp +++ b/src/mongo/db/serverless/shard_split_donor_op_observer.cpp @@ -328,7 +328,8 @@ void ShardSplitDonorOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (coll->ns() != NamespaceString::kShardSplitDonorsNamespace || tenant_migration_access_blocker::inRecoveryMode(opCtx)) { return; diff --git a/src/mongo/db/serverless/shard_split_donor_op_observer.h b/src/mongo/db/serverless/shard_split_donor_op_observer.h index 7510c9c487c..65bd617e3dc 100644 --- a/src/mongo/db/serverless/shard_split_donor_op_observer.h +++ b/src/mongo/db/serverless/shard_split_donor_op_observer.h @@ -95,7 +95,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, diff --git a/src/mongo/db/timeseries/timeseries_op_observer.cpp b/src/mongo/db/timeseries/timeseries_op_observer.cpp index 389d5259f27..fb8db5119d2 100644 --- a/src/mongo/db/timeseries/timeseries_op_observer.cpp +++ b/src/mongo/db/timeseries/timeseries_op_observer.cpp @@ -46,7 +46,8 @@ void TimeSeriesOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { const auto& nss = coll->ns(); if (!nss.isTimeseriesBucketsCollection()) { diff --git a/src/mongo/db/timeseries/timeseries_op_observer.h b/src/mongo/db/timeseries/timeseries_op_observer.h index c36c5756264..8528d805d91 100644 --- a/src/mongo/db/timeseries/timeseries_op_observer.h +++ b/src/mongo/db/timeseries/timeseries_op_observer.h @@ -50,7 +50,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onUpdate(OperationContext* opCtx, const OplogUpdateEntryArgs& args, diff --git a/src/mongo/idl/cluster_server_parameter_op_observer.cpp b/src/mongo/idl/cluster_server_parameter_op_observer.cpp index 6d0e3d37e5f..d1011ca0c55 100644 --- a/src/mongo/idl/cluster_server_parameter_op_observer.cpp +++ b/src/mongo/idl/cluster_server_parameter_op_observer.cpp @@ -60,7 +60,8 @@ void ClusterServerParameterOpObserver::onInserts(OperationContext* opCtx, std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) { + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator) { if (!isConfigNamespace(coll->ns())) { return; } diff --git a/src/mongo/idl/cluster_server_parameter_op_observer.h b/src/mongo/idl/cluster_server_parameter_op_observer.h index 159915bb830..41e4dbe6c50 100644 --- a/src/mongo/idl/cluster_server_parameter_op_observer.h +++ b/src/mongo/idl/cluster_server_parameter_op_observer.h @@ -52,7 +52,8 @@ public: std::vector<InsertStatement>::const_iterator first, std::vector<InsertStatement>::const_iterator last, std::vector<bool> fromMigrate, - bool defaultFromMigrate) final; + bool defaultFromMigrate, + InsertsOpStateAccumulator* opAccumulator = nullptr) final; void onInsertGlobalIndexKey(OperationContext* opCtx, const NamespaceString& globalIndexNss, const UUID& globalIndexUuid, |