diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2017-03-12 17:27:34 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2017-03-12 17:27:34 -0400 |
commit | 8125c55a251805899552d0af4776930216223703 (patch) | |
tree | 3e1a43aa762a2136422b4fa66f70ee89222d29a1 /src/mongo/s/commands/cluster_drop_cmd.cpp | |
parent | ae2518adace4ba7ed6a16eba6943bff6ea4ade10 (diff) | |
download | mongo-8125c55a251805899552d0af4776930216223703.tar.gz |
Revert "SERVER-22611 Sharding catalog cache refactor"
This reverts commit ae2518adace4ba7ed6a16eba6943bff6ea4ade10.
Diffstat (limited to 'src/mongo/s/commands/cluster_drop_cmd.cpp')
-rw-r--r-- | src/mongo/s/commands/cluster_drop_cmd.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/mongo/s/commands/cluster_drop_cmd.cpp b/src/mongo/s/commands/cluster_drop_cmd.cpp index 583c8902cbf..2c44a5a1dbc 100644 --- a/src/mongo/s/commands/cluster_drop_cmd.cpp +++ b/src/mongo/s/commands/cluster_drop_cmd.cpp @@ -41,6 +41,7 @@ #include "mongo/s/commands/cluster_commands_common.h" #include "mongo/s/commands/sharded_command_processing.h" #include "mongo/s/grid.h" +#include "mongo/s/sharding_raii.h" #include "mongo/s/stale_exception.h" #include "mongo/util/log.h" @@ -79,20 +80,20 @@ public: BSONObjBuilder& result) override { const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj)); - auto const catalogCache = Grid::get(opCtx)->catalogCache(); - - auto routingInfoStatus = catalogCache->getCollectionRoutingInfo(opCtx, nss); - if (routingInfoStatus == ErrorCodes::NamespaceNotFound) { + auto scopedDbStatus = ScopedShardDatabase::getExisting(opCtx, dbname); + if (scopedDbStatus == ErrorCodes::NamespaceNotFound) { return true; } - auto routingInfo = uassertStatusOK(std::move(routingInfoStatus)); + uassertStatusOK(scopedDbStatus.getStatus()); + + auto const db = scopedDbStatus.getValue().db(); - if (!routingInfo.cm()) { - _dropUnshardedCollectionFromShard(opCtx, routingInfo.primaryId(), nss, &result); + if (!db->isSharded(nss.ns())) { + _dropUnshardedCollectionFromShard(opCtx, db->getPrimaryId(), nss, &result); } else { uassertStatusOK(Grid::get(opCtx)->catalogClient(opCtx)->dropCollection(opCtx, nss)); - catalogCache->invalidateShardedCollection(nss); + db->markNSNotSharded(nss.ns()); } return true; |