summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatt Kneiser <matt.kneiser@mongodb.com>2023-04-27 23:43:49 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-05-01 00:55:20 +0000
commit3f2d96725e8b92aaab1600b81e489c898787a7b8 (patch)
treeefd14829cd6b6807d1fe0cefd643ae642d9adb2d /src
parentb1cff9e72798e2533586d94c788f4ac717d559b7 (diff)
downloadmongo-3f2d96725e8b92aaab1600b81e489c898787a7b8.tar.gz
SERVER-76636 Add accumulator to OpObserver::onInserts
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/auth/auth_op_observer.cpp3
-rw-r--r--src/mongo/db/auth/auth_op_observer.h3
-rw-r--r--src/mongo/db/catalog/rename_collection_test.cpp6
-rw-r--r--src/mongo/db/commands/mr_test.cpp6
-rw-r--r--src/mongo/db/free_mon/free_mon_op_observer.cpp3
-rw-r--r--src/mongo/db/free_mon/free_mon_op_observer.h3
-rw-r--r--src/mongo/db/op_observer/fcv_op_observer.cpp3
-rw-r--r--src/mongo/db/op_observer/fcv_op_observer.h3
-rw-r--r--src/mongo/db/op_observer/op_observer.h7
-rw-r--r--src/mongo/db/op_observer/op_observer_impl.cpp7
-rw-r--r--src/mongo/db/op_observer/op_observer_impl.h3
-rw-r--r--src/mongo/db/op_observer/op_observer_noop.h3
-rw-r--r--src/mongo/db/op_observer/op_observer_registry.h7
-rw-r--r--src/mongo/db/op_observer/user_write_block_mode_op_observer.cpp3
-rw-r--r--src/mongo/db/op_observer/user_write_block_mode_op_observer.h3
-rw-r--r--src/mongo/db/repl/oplog_applier_impl_test_fixture.cpp3
-rw-r--r--src/mongo/db/repl/oplog_applier_impl_test_fixture.h3
-rw-r--r--src/mongo/db/repl/primary_only_service_op_observer.h3
-rw-r--r--src/mongo/db/repl/shard_merge_recipient_op_observer.cpp3
-rw-r--r--src/mongo/db/repl/shard_merge_recipient_op_observer.h3
-rw-r--r--src/mongo/db/repl/tenant_collection_cloner_test.cpp3
-rw-r--r--src/mongo/db/repl/tenant_migration_donor_op_observer.cpp3
-rw-r--r--src/mongo/db/repl/tenant_migration_donor_op_observer.h3
-rw-r--r--src/mongo/db/repl/tenant_migration_recipient_op_observer.cpp3
-rw-r--r--src/mongo/db/repl/tenant_migration_recipient_op_observer.h3
-rw-r--r--src/mongo/db/s/config_server_op_observer.cpp3
-rw-r--r--src/mongo/db/s/config_server_op_observer.h3
-rw-r--r--src/mongo/db/s/query_analysis_op_observer.cpp3
-rw-r--r--src/mongo/db/s/query_analysis_op_observer.h3
-rw-r--r--src/mongo/db/s/range_deleter_service_op_observer.cpp3
-rw-r--r--src/mongo/db/s/range_deleter_service_op_observer.h3
-rw-r--r--src/mongo/db/s/resharding/resharding_op_observer.cpp3
-rw-r--r--src/mongo/db/s/resharding/resharding_op_observer.h3
-rw-r--r--src/mongo/db/s/resharding/resharding_service_test_helpers.h3
-rw-r--r--src/mongo/db/s/shard_server_op_observer.cpp3
-rw-r--r--src/mongo/db/s/shard_server_op_observer.h3
-rw-r--r--src/mongo/db/serverless/shard_split_donor_op_observer.cpp3
-rw-r--r--src/mongo/db/serverless/shard_split_donor_op_observer.h3
-rw-r--r--src/mongo/db/timeseries/timeseries_op_observer.cpp3
-rw-r--r--src/mongo/db/timeseries/timeseries_op_observer.h3
-rw-r--r--src/mongo/idl/cluster_server_parameter_op_observer.cpp3
-rw-r--r--src/mongo/idl/cluster_server_parameter_op_observer.h3
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,