From 69212b824a786bbc627dc4accdcbfaccfda12e15 Mon Sep 17 00:00:00 2001 From: Jordi Serra Torrens Date: Tue, 16 May 2023 10:14:21 +0000 Subject: SERVER-77125 Avoid unnecessary construction of NamespaceString on collection acquisitions --- src/mongo/db/index_build_entry_helpers.cpp | 172 ++++++++++----------- src/mongo/db/op_observer/op_observer_impl.cpp | 2 +- src/mongo/db/repl/oplog.cpp | 2 +- ...replication_coordinator_external_state_impl.cpp | 10 +- src/mongo/db/repl/rollback_impl.cpp | 2 +- .../db/repl/shard_merge_recipient_service.cpp | 2 +- .../tenant_migration_recipient_entry_helpers.cpp | 6 +- src/mongo/db/repl/tenant_migration_util.cpp | 4 +- .../db/s/resharding/resharding_donor_service.cpp | 4 +- .../s/resharding/resharding_recipient_service.cpp | 2 +- src/mongo/db/s/sharding_initialization_mongod.cpp | 15 +- src/mongo/db/s/sharding_state_recovery.cpp | 16 +- src/mongo/db/serverless/shard_split_utils.cpp | 6 +- src/mongo/db/shard_role.h | 48 ++---- .../db/storage/storage_repair_observer_test.cpp | 2 +- 15 files changed, 132 insertions(+), 161 deletions(-) diff --git a/src/mongo/db/index_build_entry_helpers.cpp b/src/mongo/db/index_build_entry_helpers.cpp index c5e832c2d4c..c96cd3ce848 100644 --- a/src/mongo/db/index_build_entry_helpers.cpp +++ b/src/mongo/db/index_build_entry_helpers.cpp @@ -54,33 +54,33 @@ namespace { MONGO_FAIL_POINT_DEFINE(hangBeforeGettingIndexBuildEntry); Status upsert(OperationContext* opCtx, const IndexBuildEntry& indexBuildEntry) { - return writeConflictRetry( - opCtx, - "upsertIndexBuildEntry", - NamespaceString::kIndexBuildEntryNamespace, - [&]() -> Status { - auto collection = - acquireCollection(opCtx, - CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kIndexBuildEntryNamespace), - PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, - repl::ReadConcernArgs::get(opCtx), - AcquisitionPrerequisites::kWrite), - MODE_IX); - if (!collection.exists()) { - str::stream ss; - ss << "Collection not found: " << NamespaceString::kIndexBuildEntryNamespace.ns(); - return Status(ErrorCodes::NamespaceNotFound, ss); - } - - WriteUnitOfWork wuow(opCtx); - Helpers::upsert(opCtx, - collection, - indexBuildEntry.toBSON(), - /*fromMigrate=*/false); - wuow.commit(); - return Status::OK(); - }); + return writeConflictRetry(opCtx, + "upsertIndexBuildEntry", + NamespaceString::kIndexBuildEntryNamespace, + [&]() -> Status { + auto collection = acquireCollection( + opCtx, + CollectionAcquisitionRequest( + NamespaceString::kIndexBuildEntryNamespace, + PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, + repl::ReadConcernArgs::get(opCtx), + AcquisitionPrerequisites::kWrite), + MODE_IX); + if (!collection.exists()) { + str::stream ss; + ss << "Collection not found: " + << NamespaceString::kIndexBuildEntryNamespace.ns(); + return Status(ErrorCodes::NamespaceNotFound, ss); + } + + WriteUnitOfWork wuow(opCtx); + Helpers::upsert(opCtx, + collection, + indexBuildEntry.toBSON(), + /*fromMigrate=*/false); + wuow.commit(); + return Status::OK(); + }); } std::pair buildIndexBuildEntryFilterAndUpdate( @@ -115,68 +115,68 @@ std::pair buildIndexBuildEntryFilterAndUpdate( } Status upsert(OperationContext* opCtx, const BSONObj& filter, const BSONObj& updateMod) { - return writeConflictRetry( - opCtx, - "upsertIndexBuildEntry", - NamespaceString::kIndexBuildEntryNamespace, - [&]() -> Status { - auto collection = - acquireCollection(opCtx, - CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kIndexBuildEntryNamespace), - PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, - repl::ReadConcernArgs::get(opCtx), - AcquisitionPrerequisites::kWrite), - MODE_IX); - - if (!collection.exists()) { - str::stream ss; - ss << "Collection not found: " << NamespaceString::kIndexBuildEntryNamespace.ns(); - return Status(ErrorCodes::NamespaceNotFound, ss); - } - - WriteUnitOfWork wuow(opCtx); - Helpers::upsert(opCtx, - collection, - filter, - updateMod, - /*fromMigrate=*/false); - wuow.commit(); - return Status::OK(); - }); + return writeConflictRetry(opCtx, + "upsertIndexBuildEntry", + NamespaceString::kIndexBuildEntryNamespace, + [&]() -> Status { + auto collection = acquireCollection( + opCtx, + CollectionAcquisitionRequest( + NamespaceString::kIndexBuildEntryNamespace, + PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, + repl::ReadConcernArgs::get(opCtx), + AcquisitionPrerequisites::kWrite), + MODE_IX); + + if (!collection.exists()) { + str::stream ss; + ss << "Collection not found: " + << NamespaceString::kIndexBuildEntryNamespace.ns(); + return Status(ErrorCodes::NamespaceNotFound, ss); + } + + WriteUnitOfWork wuow(opCtx); + Helpers::upsert(opCtx, + collection, + filter, + updateMod, + /*fromMigrate=*/false); + wuow.commit(); + return Status::OK(); + }); } Status update(OperationContext* opCtx, const BSONObj& filter, const BSONObj& updateMod) { - return writeConflictRetry( - opCtx, - "updateIndexBuildEntry", - NamespaceString::kIndexBuildEntryNamespace, - [&]() -> Status { - ; - auto collection = - acquireCollection(opCtx, - CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kIndexBuildEntryNamespace), - PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, - repl::ReadConcernArgs::get(opCtx), - AcquisitionPrerequisites::kWrite), - MODE_IX); - - if (!collection.exists()) { - str::stream ss; - ss << "Collection not found: " << NamespaceString::kIndexBuildEntryNamespace.ns(); - return Status(ErrorCodes::NamespaceNotFound, ss); - } - - WriteUnitOfWork wuow(opCtx); - Helpers::update(opCtx, - collection, - filter, - updateMod, - /*fromMigrate=*/false); - wuow.commit(); - return Status::OK(); - }); + return writeConflictRetry(opCtx, + "updateIndexBuildEntry", + NamespaceString::kIndexBuildEntryNamespace, + [&]() -> Status { + ; + auto collection = acquireCollection( + opCtx, + CollectionAcquisitionRequest( + NamespaceString::kIndexBuildEntryNamespace, + PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, + repl::ReadConcernArgs::get(opCtx), + AcquisitionPrerequisites::kWrite), + MODE_IX); + + if (!collection.exists()) { + str::stream ss; + ss << "Collection not found: " + << NamespaceString::kIndexBuildEntryNamespace.ns(); + return Status(ErrorCodes::NamespaceNotFound, ss); + } + + WriteUnitOfWork wuow(opCtx); + Helpers::update(opCtx, + collection, + filter, + updateMod, + /*fromMigrate=*/false); + wuow.commit(); + return Status::OK(); + }); } } // namespace diff --git a/src/mongo/db/op_observer/op_observer_impl.cpp b/src/mongo/db/op_observer/op_observer_impl.cpp index a4f14b9a6c2..0b38699f6b7 100644 --- a/src/mongo/db/op_observer/op_observer_impl.cpp +++ b/src/mongo/db/op_observer/op_observer_impl.cpp @@ -290,7 +290,7 @@ void writeToImageCollection(OperationContext* opCtx, AllowLockAcquisitionOnTimestampedUnitOfWork allowLockAcquisition(opCtx->lockState()); auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(NamespaceString::kConfigImagesNamespace), + CollectionAcquisitionRequest(NamespaceString::kConfigImagesNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/repl/oplog.cpp b/src/mongo/db/repl/oplog.cpp index c6448ea3f62..2458503d3db 100644 --- a/src/mongo/db/repl/oplog.cpp +++ b/src/mongo/db/repl/oplog.cpp @@ -341,7 +341,7 @@ void writeToImageCollection(OperationContext* opCtx, AllowLockAcquisitionOnTimestampedUnitOfWork allowLockAcquisition(opCtx->lockState()); auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(NamespaceString::kConfigImagesNamespace), + CollectionAcquisitionRequest(NamespaceString::kConfigImagesNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp index c91b38e4847..7c7640c7be5 100644 --- a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp @@ -428,7 +428,7 @@ Status ReplicationCoordinatorExternalStateImpl::initializeReplSetStorage(Operati auto coll = acquireCollection( opCtx, CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kSystemReplSetNamespace), + NamespaceString::kSystemReplSetNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -600,7 +600,7 @@ Status ReplicationCoordinatorExternalStateImpl::storeLocalConfigDocument(Operati auto coll = acquireCollection( opCtx, CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kSystemReplSetNamespace), + NamespaceString::kSystemReplSetNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -637,7 +637,7 @@ Status ReplicationCoordinatorExternalStateImpl::replaceLocalConfigDocument( auto coll = acquireCollection(opCtx, CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kSystemReplSetNamespace), + NamespaceString::kSystemReplSetNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -671,7 +671,7 @@ Status ReplicationCoordinatorExternalStateImpl::createLocalLastVoteCollection( auto coll = acquireCollection( opCtx, CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kLastVoteNamespace), + NamespaceString::kLastVoteNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -744,7 +744,7 @@ Status ReplicationCoordinatorExternalStateImpl::storeLocalLastVoteDocument( auto coll = acquireCollection(opCtx, CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kLastVoteNamespace), + NamespaceString::kLastVoteNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/repl/rollback_impl.cpp b/src/mongo/db/repl/rollback_impl.cpp index d87cec5f430..1121cd3f564 100644 --- a/src/mongo/db/repl/rollback_impl.cpp +++ b/src/mongo/db/repl/rollback_impl.cpp @@ -534,7 +534,7 @@ void RollbackImpl::_restoreTxnsTableEntryFromRetryableWrites(OperationContext* o auto collection = acquireCollection(opCtx, CollectionAcquisitionRequest( - NamespaceString(nss), + nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/repl/shard_merge_recipient_service.cpp b/src/mongo/db/repl/shard_merge_recipient_service.cpp index a070989a745..681d2783843 100644 --- a/src/mongo/db/repl/shard_merge_recipient_service.cpp +++ b/src/mongo/db/repl/shard_merge_recipient_service.cpp @@ -2020,7 +2020,7 @@ void ShardMergeRecipientService::Instance::_writeStateDoc( const auto& nss = NamespaceString::kShardMergeRecipientsNamespace; auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/repl/tenant_migration_recipient_entry_helpers.cpp b/src/mongo/db/repl/tenant_migration_recipient_entry_helpers.cpp index 81d1d096465..125f58f4904 100644 --- a/src/mongo/db/repl/tenant_migration_recipient_entry_helpers.cpp +++ b/src/mongo/db/repl/tenant_migration_recipient_entry_helpers.cpp @@ -58,7 +58,7 @@ Status insertStateDoc(OperationContext* opCtx, const TenantMigrationRecipientDoc const auto nss = NamespaceString::kTenantMigrationRecipientsNamespace; auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -101,7 +101,7 @@ Status updateStateDoc(OperationContext* opCtx, const TenantMigrationRecipientDoc const auto nss = NamespaceString::kTenantMigrationRecipientsNamespace; auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -131,7 +131,7 @@ StatusWith deleteStateDocIfMarkedAsGarbageCollectable(OperationContext* op const auto nss = NamespaceString::kTenantMigrationRecipientsNamespace; const auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/repl/tenant_migration_util.cpp b/src/mongo/db/repl/tenant_migration_util.cpp index b97faca5845..b1470577cd9 100644 --- a/src/mongo/db/repl/tenant_migration_util.cpp +++ b/src/mongo/db/repl/tenant_migration_util.cpp @@ -132,7 +132,7 @@ repl::OpTime storeExternalClusterTimeKeyDocs(std::vector markExternalKeysAsGarbageCollectable( auto collection = acquireCollection( opCtx, CollectionAcquisitionRequest( - NamespaceString(nss), + nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/s/resharding/resharding_donor_service.cpp b/src/mongo/db/s/resharding/resharding_donor_service.cpp index d0a81bb656d..3928c97558c 100644 --- a/src/mongo/db/s/resharding/resharding_donor_service.cpp +++ b/src/mongo/db/s/resharding/resharding_donor_service.cpp @@ -999,7 +999,7 @@ void ReshardingDonorService::DonorStateMachine::_updateDonorDocument( writeConflictRetry(opCtx.get(), "DonorStateMachine::_updateDonorDocument", nss, [&] { auto coll = acquireCollection( opCtx.get(), - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx.get()), AcquisitionPrerequisites::kWrite), @@ -1031,7 +1031,7 @@ void ReshardingDonorService::DonorStateMachine::_removeDonorDocument( writeConflictRetry(opCtx.get(), "DonorStateMachine::_removeDonorDocument", nss, [&] { const auto coll = acquireCollection( opCtx.get(), - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx.get()), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/s/resharding/resharding_recipient_service.cpp b/src/mongo/db/s/resharding/resharding_recipient_service.cpp index 6328f3066fe..baec5096e1c 100644 --- a/src/mongo/db/s/resharding/resharding_recipient_service.cpp +++ b/src/mongo/db/s/resharding/resharding_recipient_service.cpp @@ -1123,7 +1123,7 @@ void ReshardingRecipientService::RecipientStateMachine::_removeRecipientDocument writeConflictRetry(opCtx.get(), "RecipientStateMachine::_removeRecipientDocument", nss, [&] { const auto coll = acquireCollection( opCtx.get(), - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx.get()), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp index dc385b0449c..dedfd3ddc9d 100644 --- a/src/mongo/db/s/sharding_initialization_mongod.cpp +++ b/src/mongo/db/s/sharding_initialization_mongod.cpp @@ -507,14 +507,13 @@ void ShardingInitializationMongoD::updateShardIdentityConfigString( write_ops::UpdateModification::parseFromClassicUpdate(updateObj)); try { - auto collection = - acquireCollection(opCtx, - CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kServerConfigurationNamespace), - PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, - repl::ReadConcernArgs::get(opCtx), - AcquisitionPrerequisites::kWrite), - MODE_IX); + auto collection = acquireCollection( + opCtx, + CollectionAcquisitionRequest(NamespaceString::kServerConfigurationNamespace, + PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, + repl::ReadConcernArgs::get(opCtx), + AcquisitionPrerequisites::kWrite), + MODE_IX); auto result = update(opCtx, collection, updateReq); if (result.numMatched == 0) { LOGV2_WARNING(22076, diff --git a/src/mongo/db/s/sharding_state_recovery.cpp b/src/mongo/db/s/sharding_state_recovery.cpp index 70d037ef865..ee70ac7acc6 100644 --- a/src/mongo/db/s/sharding_state_recovery.cpp +++ b/src/mongo/db/s/sharding_state_recovery.cpp @@ -147,14 +147,14 @@ Status modifyRecoveryDocument(OperationContext* opCtx, const WriteConcernOptions& writeConcern) { try { { - auto collection = acquireCollection( - opCtx, - CollectionAcquisitionRequest( - NamespaceString(NamespaceString::kServerConfigurationNamespace), - PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, - repl::ReadConcernArgs::get(opCtx), - AcquisitionPrerequisites::kWrite), - MODE_X); + auto collection = + acquireCollection(opCtx, + CollectionAcquisitionRequest( + NamespaceString::kServerConfigurationNamespace, + PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, + repl::ReadConcernArgs::get(opCtx), + AcquisitionPrerequisites::kWrite), + MODE_X); const auto configOpTime = [&]() { const auto vcTime = VectorClock::get(opCtx)->getTime(); diff --git a/src/mongo/db/serverless/shard_split_utils.cpp b/src/mongo/db/serverless/shard_split_utils.cpp index bd65cfd282f..6332becd888 100644 --- a/src/mongo/db/serverless/shard_split_utils.cpp +++ b/src/mongo/db/serverless/shard_split_utils.cpp @@ -156,7 +156,7 @@ Status insertStateDoc(OperationContext* opCtx, const ShardSplitDonorDocument& st const auto nss = NamespaceString::kShardSplitDonorsNamespace; auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -189,7 +189,7 @@ Status updateStateDoc(OperationContext* opCtx, const ShardSplitDonorDocument& st const auto nss = NamespaceString::kShardSplitDonorsNamespace; auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), @@ -217,7 +217,7 @@ StatusWith deleteStateDoc(OperationContext* opCtx, const UUID& shardSplitI const auto nss = NamespaceString::kShardSplitDonorsNamespace; const auto collection = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(nss), + CollectionAcquisitionRequest(nss, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), diff --git a/src/mongo/db/shard_role.h b/src/mongo/db/shard_role.h index 71853124a5f..866fd91ebe2 100644 --- a/src/mongo/db/shard_role.h +++ b/src/mongo/db/shard_role.h @@ -44,15 +44,18 @@ namespace mongo { */ struct CollectionOrViewAcquisitionRequest { /** - * Overload, which acquires a collection by NSS, ignoring the current UUID mapping. + * Overload, which acquires a collection by NSS or DB/UUID, without imposing an expected + * relationship between NSS and UUID. */ CollectionOrViewAcquisitionRequest( - NamespaceString nss, + NamespaceStringOrUUID nssOrUUID, PlacementConcern placementConcern, repl::ReadConcernArgs readConcern, AcquisitionPrerequisites::OperationType operationType, AcquisitionPrerequisites::ViewMode viewMode = AcquisitionPrerequisites::kCanBeView) - : nss(nss), + : nss(nssOrUUID.nss()), + dbname(nssOrUUID.dbName()), + uuid(nssOrUUID.uuid()), placementConcern(placementConcern), readConcern(readConcern), operationType(operationType), @@ -76,24 +79,6 @@ struct CollectionOrViewAcquisitionRequest { operationType(operationType), viewMode(viewMode) {} - /** - * Overload, which acquires a collection by NSS or DB/UUID, without imposing an expected - * relationship between NSS and UUID. - */ - CollectionOrViewAcquisitionRequest( - NamespaceStringOrUUID nssOrUUID, - PlacementConcern placementConcern, - repl::ReadConcernArgs readConcern, - AcquisitionPrerequisites::OperationType operationType, - AcquisitionPrerequisites::ViewMode viewMode = AcquisitionPrerequisites::kCanBeView) - : nss(nssOrUUID.nss()), - dbname(nssOrUUID.dbName()), - uuid(nssOrUUID.uuid()), - placementConcern(placementConcern), - readConcern(readConcern), - operationType(operationType), - viewMode(viewMode) {} - /** * Infers the placement and read concerns from the OperationShardingState and ReadConcern values * on the OperationContext. @@ -118,13 +103,14 @@ struct CollectionOrViewAcquisitionRequest { struct CollectionAcquisitionRequest : public CollectionOrViewAcquisitionRequest { /** - * Overload, which acquires a collection by NSS, ignoring the current UUID mapping. + * Overload, which acquires a collection by NSS or DB/UUID, without imposing an expected + * relationship between NSS and UUID. */ - CollectionAcquisitionRequest(NamespaceString nss, + CollectionAcquisitionRequest(NamespaceStringOrUUID nssOrUUID, PlacementConcern placementConcern, repl::ReadConcernArgs readConcern, AcquisitionPrerequisites::OperationType operationType) - : CollectionOrViewAcquisitionRequest(nss, + : CollectionOrViewAcquisitionRequest(nssOrUUID, placementConcern, readConcern, operationType, @@ -146,20 +132,6 @@ struct CollectionAcquisitionRequest : public CollectionOrViewAcquisitionRequest operationType, AcquisitionPrerequisites::kMustBeCollection) {} - /** - * Overload, which acquires a collection by NSS or DB/UUID, without imposing an expected - * relationship between NSS and UUID. - */ - CollectionAcquisitionRequest(NamespaceStringOrUUID nssOrUUID, - PlacementConcern placementConcern, - repl::ReadConcernArgs readConcern, - AcquisitionPrerequisites::OperationType operationType) - : CollectionOrViewAcquisitionRequest(nssOrUUID, - placementConcern, - readConcern, - operationType, - AcquisitionPrerequisites::kMustBeCollection) {} - /** * Infers the placement and read concerns from the OperationShardingState and ReadConcern values * on the OperationContext. diff --git a/src/mongo/db/storage/storage_repair_observer_test.cpp b/src/mongo/db/storage/storage_repair_observer_test.cpp index e5960aa75be..49cadf39e60 100644 --- a/src/mongo/db/storage/storage_repair_observer_test.cpp +++ b/src/mongo/db/storage/storage_repair_observer_test.cpp @@ -76,7 +76,7 @@ public: Lock::DBLock dbLock(opCtx, DatabaseName::kLocal, MODE_X); auto coll = acquireCollection( opCtx, - CollectionAcquisitionRequest(NamespaceString(NamespaceString::kSystemReplSetNamespace), + CollectionAcquisitionRequest(NamespaceString::kSystemReplSetNamespace, PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, repl::ReadConcernArgs::get(opCtx), AcquisitionPrerequisites::kWrite), -- cgit v1.2.1