summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordi Serra Torrens <jordi.serra-torrens@mongodb.com>2023-05-16 10:14:21 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-05-16 11:26:10 +0000
commit69212b824a786bbc627dc4accdcbfaccfda12e15 (patch)
tree4951d5873371e1a961edf1afa0a3e46f141b2869
parent279531ef0dbaf8f6df0e25341425eb57d75a21ea (diff)
downloadmongo-69212b824a786bbc627dc4accdcbfaccfda12e15.tar.gz
SERVER-77125 Avoid unnecessary construction of NamespaceString on collection acquisitions
-rw-r--r--src/mongo/db/index_build_entry_helpers.cpp172
-rw-r--r--src/mongo/db/op_observer/op_observer_impl.cpp2
-rw-r--r--src/mongo/db/repl/oplog.cpp2
-rw-r--r--src/mongo/db/repl/replication_coordinator_external_state_impl.cpp10
-rw-r--r--src/mongo/db/repl/rollback_impl.cpp2
-rw-r--r--src/mongo/db/repl/shard_merge_recipient_service.cpp2
-rw-r--r--src/mongo/db/repl/tenant_migration_recipient_entry_helpers.cpp6
-rw-r--r--src/mongo/db/repl/tenant_migration_util.cpp4
-rw-r--r--src/mongo/db/s/resharding/resharding_donor_service.cpp4
-rw-r--r--src/mongo/db/s/resharding/resharding_recipient_service.cpp2
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp15
-rw-r--r--src/mongo/db/s/sharding_state_recovery.cpp16
-rw-r--r--src/mongo/db/serverless/shard_split_utils.cpp6
-rw-r--r--src/mongo/db/shard_role.h48
-rw-r--r--src/mongo/db/storage/storage_repair_observer_test.cpp2
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<const BSONObj, const BSONObj> buildIndexBuildEntryFilterAndUpdate(
@@ -115,68 +115,68 @@ std::pair<const BSONObj, const BSONObj> 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<bool> 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<ExternalKeysCollectionD
for (auto& keyDoc : keyDocs) {
auto collection = acquireCollection(
opCtx,
- CollectionAcquisitionRequest(NamespaceString(nss),
+ CollectionAcquisitionRequest(nss,
PlacementConcern{boost::none, ShardVersion::UNSHARDED()},
repl::ReadConcernArgs::get(opCtx),
AcquisitionPrerequisites::kWrite),
@@ -612,7 +612,7 @@ ExecutorFuture<void> 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<bool> 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),
@@ -77,24 +80,6 @@ struct CollectionOrViewAcquisitionRequest {
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,
@@ -147,20 +133,6 @@ struct CollectionAcquisitionRequest : public CollectionOrViewAcquisitionRequest
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),