summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/shard_metadata_util.cpp
diff options
context:
space:
mode:
authorDaniel Gottlieb <daniel.gottlieb@mongodb.com>2021-08-16 22:27:06 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-08-17 03:55:27 +0000
commit07507a2318e63043d4b6bb8c1d0d342e0076291f (patch)
tree24b72d322750fde4fc7bdf3ef3eac82dd8f8bb9f /src/mongo/db/s/shard_metadata_util.cpp
parenta93986b41b1e292b6db95028629fd38e0434022c (diff)
downloadmongo-07507a2318e63043d4b6bb8c1d0d342e0076291f.tar.gz
Revert "SERVER-58575 Replace the logic that decides whether the SSCCL should use namespaces or uuids for config.cache.chunks collections"
This reverts commit 0d9c8e78185156a008f5c4557188fa9ecbbdc36b.
Diffstat (limited to 'src/mongo/db/s/shard_metadata_util.cpp')
-rw-r--r--src/mongo/db/s/shard_metadata_util.cpp58
1 files changed, 25 insertions, 33 deletions
diff --git a/src/mongo/db/s/shard_metadata_util.cpp b/src/mongo/db/s/shard_metadata_util.cpp
index fc8fbee4dc1..07bcb7c22bd 100644
--- a/src/mongo/db/s/shard_metadata_util.cpp
+++ b/src/mongo/db/s/shard_metadata_util.cpp
@@ -276,18 +276,13 @@ Status updateShardDatabasesEntry(OperationContext* opCtx,
StatusWith<std::vector<ChunkType>> readShardChunks(OperationContext* opCtx,
const NamespaceString& nss,
- const UUID& uuid,
- SupportingLongNameStatusEnum supportingLongName,
+ const boost::optional<UUID>& uuid,
const BSONObj& query,
const BSONObj& sort,
boost::optional<long long> limit,
const OID& epoch,
const boost::optional<Timestamp>& timestamp) {
- const auto chunksNsPostfix{supportingLongName == SupportingLongNameStatusEnum::kDisabled ||
- nss.isTemporaryReshardingCollection()
- ? nss.ns()
- : uuid.toString()};
- const NamespaceString chunksNss{ChunkType::ShardNSPrefix + chunksNsPostfix};
+ const NamespaceString chunksNss{ChunkType::ShardNSPrefix + nss.ns()};
try {
DBDirectClient client(opCtx);
@@ -322,17 +317,12 @@ StatusWith<std::vector<ChunkType>> readShardChunks(OperationContext* opCtx,
Status updateShardChunks(OperationContext* opCtx,
const NamespaceString& nss,
- const UUID& uuid,
- SupportingLongNameStatusEnum supportingLongName,
+ const boost::optional<UUID>& uuid,
const std::vector<ChunkType>& chunks,
const OID& currEpoch) {
invariant(!chunks.empty());
- const auto chunksNsPostfix{supportingLongName == SupportingLongNameStatusEnum::kDisabled ||
- nss.isTemporaryReshardingCollection()
- ? nss.ns()
- : uuid.toString()};
- const NamespaceString chunksNss{ChunkType::ShardNSPrefix + chunksNsPostfix};
+ const NamespaceString chunksNss{ChunkType::ShardNSPrefix + nss.ns()};
try {
DBDirectClient client(opCtx);
@@ -421,17 +411,17 @@ void updateTimestampOnShardCollections(OperationContext* opCtx,
}
Status dropChunksAndDeleteCollectionsEntry(OperationContext* opCtx, const NamespaceString& nss) {
- // TODO (SERVER-58361): Reduce the access to local collections.
- const auto statusWithCollectionEntry = readShardCollectionsEntry(opCtx, nss);
- if (statusWithCollectionEntry.getStatus() == ErrorCodes::NamespaceNotFound) {
- return Status::OK();
- }
- uassertStatusOKWithContext(statusWithCollectionEntry,
- str::stream() << "Failed to read persisted collection entry for '"
- << nss.ns() << "'.");
- const auto& collectionEntry = statusWithCollectionEntry.getValue();
-
try {
+ const auto localUuid = [&] {
+ const auto statusWithCollectionEntry = readShardCollectionsEntry(opCtx, nss);
+ if (!statusWithCollectionEntry.isOK()) {
+ return boost::optional<UUID>(boost::none);
+ }
+ const auto collectionEntry = statusWithCollectionEntry.getValue();
+ return collectionEntry.getTimestamp() ? collectionEntry.getUuid()
+ : boost::optional<UUID>(boost::none);
+ }();
+
DBDirectClient client(opCtx);
auto deleteCommandResponse = client.runCommand([&] {
write_ops::DeleteCommandRequest deleteOp(
@@ -447,12 +437,12 @@ Status dropChunksAndDeleteCollectionsEntry(OperationContext* opCtx, const Namesp
uassertStatusOK(
getStatusFromWriteCommandResponse(deleteCommandResponse->getCommandReply()));
- dropChunks(opCtx, nss, collectionEntry.getUuid(), collectionEntry.getSupportingLongName());
+ dropChunks(opCtx, nss, localUuid);
LOGV2(3463200,
"Dropped chunks and collection caches",
"collectionNamespace"_attr = nss,
- "collectionUUID"_attr = collectionEntry.getUuid());
+ "collectionUuid"_attr = localUuid);
return Status::OK();
} catch (const DBException& ex) {
@@ -462,13 +452,8 @@ Status dropChunksAndDeleteCollectionsEntry(OperationContext* opCtx, const Namesp
void dropChunks(OperationContext* opCtx,
const NamespaceString& nss,
- const UUID& uuid,
- SupportingLongNameStatusEnum supportingLongName) {
- const auto chunksNsPostfix{supportingLongName == SupportingLongNameStatusEnum::kDisabled ||
- nss.isTemporaryReshardingCollection()
- ? nss.ns()
- : uuid.toString()};
- const NamespaceString chunksNss{ChunkType::ShardNSPrefix + chunksNsPostfix};
+ const boost::optional<UUID>& uuid) {
+ const NamespaceString chunksNss{ChunkType::ShardNSPrefix + nss.ns()};
DBDirectClient client(opCtx);
BSONObj result;
@@ -478,6 +463,13 @@ void dropChunks(OperationContext* opCtx,
uassertStatusOK(status);
}
}
+
+ LOGV2_DEBUG(3463201,
+ 1,
+ "Dropped chunks cache",
+ "chunksNamespace"_attr = chunksNss,
+ "collectionNamespace"_attr = nss,
+ "error"_attr = getStatusFromCommandResult(result));
}
Status deleteDatabasesEntry(OperationContext* opCtx, StringData dbName) {