diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2017-01-19 15:59:53 -0500 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2017-01-19 20:15:59 -0500 |
commit | a9d62c05f1bd56e8a52f12fd096eb4f2d07a8b23 (patch) | |
tree | a6a9bcc125cce95914e1f3249b94979185caa81c /src/mongo/s/chunk.cpp | |
parent | d7b5703ae68a85bdb9f69f91453e3deced93cb92 (diff) | |
download | mongo-a9d62c05f1bd56e8a52f12fd096eb4f2d07a8b23.tar.gz |
SERVER-27736 Do not store unsharded collections in DBConfig
Diffstat (limited to 'src/mongo/s/chunk.cpp')
-rw-r--r-- | src/mongo/s/chunk.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mongo/s/chunk.cpp b/src/mongo/s/chunk.cpp index 5f33238b24b..cc3f6cbe524 100644 --- a/src/mongo/s/chunk.cpp +++ b/src/mongo/s/chunk.cpp @@ -34,13 +34,11 @@ #include "mongo/bson/simple_bsonobj_comparator.h" #include "mongo/client/connpool.h" -#include "mongo/db/commands.h" #include "mongo/db/lasterror.h" #include "mongo/platform/random.h" #include "mongo/s/balancer_configuration.h" #include "mongo/s/catalog/sharding_catalog_client.h" #include "mongo/s/catalog/type_collection.h" -#include "mongo/s/chunk_manager.h" #include "mongo/s/client/shard_registry.h" #include "mongo/s/config_server_client.h" #include "mongo/s/grid.h" @@ -75,6 +73,12 @@ int mkDataWritten() { return r.nextInt32(grid.getBalancerConfiguration()->getMaxChunkSizeBytes() / splitTestFactor); } +void reloadChunkManager(OperationContext* txn, const std::string ns) { + const NamespaceString nss(ns); + auto config = uassertStatusOK(ScopedShardDatabase::getExisting(txn, nss.db())); + config.db()->getChunkManagerIfExists(txn, nss.ns(), true); +} + } // namespace Chunk::Chunk(OperationContext* txn, ChunkManager* manager, const ChunkType& from) @@ -301,7 +305,7 @@ StatusWith<boost::optional<ChunkRange>> Chunk::split(OperationContext* txn, return splitStatus.getStatus(); } - _manager->reload(txn); + reloadChunkManager(txn, _manager->getns()); *resultingSplits = splitPoints.size(); return splitStatus.getValue(); @@ -422,7 +426,7 @@ bool Chunk::splitIfShould(OperationContext* txn, long dataWritten) { msgassertedNoTraceWithStatus(10412, rebalanceStatus); } - _manager->reload(txn); + reloadChunkManager(txn, _manager->getns()); } return true; |