diff options
author | Gregory Wlodarek <gregory.wlodarek@mongodb.com> | 2022-08-10 12:50:11 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-08-10 13:55:31 +0000 |
commit | 92c4d0cf38b1bd20be3c600c1fa4b103d81fdd1b (patch) | |
tree | cee193eb7edd26956e8f0e531e34f773532e042e /src | |
parent | 85ff13118e4f882b7c254fd1d3c2f4abd4c5296b (diff) | |
download | mongo-92c4d0cf38b1bd20be3c600c1fa4b103d81fdd1b.tar.gz |
SERVER-68671 Only maintain drop pending idents in the CollectionCatalog when the point-in-time catalog lookups feature flag is enabled
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/catalog/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/catalog/collection_catalog.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/storage/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/storage/storage_util.cpp | 12 |
4 files changed, 16 insertions, 5 deletions
diff --git a/src/mongo/db/catalog/SConscript b/src/mongo/db/catalog/SConscript index 296f598fee6..75f0e951551 100644 --- a/src/mongo/db/catalog/SConscript +++ b/src/mongo/db/catalog/SConscript @@ -298,6 +298,7 @@ env.Library( '$BUILD_DIR/mongo/db/service_context', '$BUILD_DIR/mongo/db/storage/bson_collection_catalog_entry', '$BUILD_DIR/mongo/db/storage/snapshot_helper', + '$BUILD_DIR/mongo/db/storage/storage_options', '$BUILD_DIR/mongo/db/views/views', '$BUILD_DIR/mongo/idl/server_parameter', 'collection', diff --git a/src/mongo/db/catalog/collection_catalog.cpp b/src/mongo/db/catalog/collection_catalog.cpp index d83629b782a..9bb5d66d80b 100644 --- a/src/mongo/db/catalog/collection_catalog.cpp +++ b/src/mongo/db/catalog/collection_catalog.cpp @@ -40,6 +40,7 @@ #include "mongo/db/server_options.h" #include "mongo/db/storage/recovery_unit.h" #include "mongo/db/storage/snapshot_helper.h" +#include "mongo/db/storage/storage_parameters_gen.h" #include "mongo/logv2/log.h" #include "mongo/util/assert_util.h" #include "mongo/util/uuid.h" @@ -1219,7 +1220,8 @@ std::shared_ptr<Collection> CollectionCatalog::deregisterCollection(OperationCon invariant(_collections.find(ns) != _collections.end()); invariant(_orderedCollections.find(dbIdPair) != _orderedCollections.end()); - if (isDropPending) { + // TODO SERVER-68674: Remove feature flag check. + if (feature_flags::gPointInTimeCatalogLookups.isEnabledAndIgnoreFCV() && isDropPending) { auto ident = coll->getSharedIdent()->getIdent(); LOGV2_DEBUG(6825300, 1, "Registering drop pending collection ident", "ident"_attr = ident); @@ -1346,7 +1348,8 @@ void CollectionCatalog::clearViews(OperationContext* opCtx, const DatabaseName& void CollectionCatalog::deregisterIndex(OperationContext* opCtx, std::shared_ptr<IndexCatalogEntry> indexEntry, bool isDropPending) { - if (!isDropPending) { + // TODO SERVER-68674: Remove feature flag check. + if (!feature_flags::gPointInTimeCatalogLookups.isEnabledAndIgnoreFCV() || !isDropPending) { // No-op. return; } diff --git a/src/mongo/db/storage/SConscript b/src/mongo/db/storage/SConscript index 7b73ea2a25d..1bdc05203ab 100644 --- a/src/mongo/db/storage/SConscript +++ b/src/mongo/db/storage/SConscript @@ -571,6 +571,7 @@ env.Library( ], LIBDEPS_PRIVATE=[ '$BUILD_DIR/mongo/db/multitenancy', + '$BUILD_DIR/mongo/db/storage/storage_options', 'durable_catalog_impl', 'kv/kv_drop_pending_ident_reaper', ], diff --git a/src/mongo/db/storage/storage_util.cpp b/src/mongo/db/storage/storage_util.cpp index f603504e023..46f3187c0c3 100644 --- a/src/mongo/db/storage/storage_util.cpp +++ b/src/mongo/db/storage/storage_util.cpp @@ -41,6 +41,7 @@ #include "mongo/db/storage/ident.h" #include "mongo/db/storage/kv/kv_engine.h" #include "mongo/db/storage/storage_engine.h" +#include "mongo/db/storage/storage_parameters_gen.h" #include "mongo/logv2/log.h" #define MONGO_LOGV2_DEFAULT_COMPONENT ::mongo::logv2::LogComponent::kStorage @@ -121,7 +122,8 @@ void removeIndex(OperationContext* opCtx, const bool isTwoPhaseDrop = storageEngine->supportsPendingDrops() && dataRemoval == DataRemoval::kTwoPhase; - if (isTwoPhaseDrop) { + // TODO SERVER-68674: Remove feature flag check. + if (feature_flags::gPointInTimeCatalogLookups.isEnabledAndIgnoreFCV() && isTwoPhaseDrop) { invariant(entry); CollectionCatalog::get(opCtx)->dropIndex( opCtx, collection->ns(), entry, /*isDropPending=*/true); @@ -141,7 +143,9 @@ void removeIndex(OperationContext* opCtx, [svcCtx, storageEngine, nss, ident = ident->getIdent(), isTwoPhaseDrop] { removeEmptyDirectory(svcCtx, storageEngine, nss); - if (isTwoPhaseDrop) { + // TODO SERVER-68674: Remove feature flag check. + if (feature_flags::gPointInTimeCatalogLookups.isEnabledAndIgnoreFCV() && + isTwoPhaseDrop) { CollectionCatalog::write(svcCtx, [&](CollectionCatalog& catalog) { catalog.notifyIdentDropped(ident); }); @@ -207,7 +211,9 @@ Status dropCollection(OperationContext* opCtx, [svcCtx, storageEngine, nss, ident = ident->getIdent()] { removeEmptyDirectory(svcCtx, storageEngine, nss); - if (storageEngine->supportsPendingDrops()) { + // TODO SERVER-68674: Remove feature flag check. + if (feature_flags::gPointInTimeCatalogLookups.isEnabledAndIgnoreFCV() && + storageEngine->supportsPendingDrops()) { CollectionCatalog::write(svcCtx, [&](CollectionCatalog& catalog) { catalog.notifyIdentDropped(ident); }); |