summaryrefslogtreecommitdiff
path: root/src/mongo/s/chunk.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-01-19 15:59:53 -0500
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-01-19 20:15:59 -0500
commita9d62c05f1bd56e8a52f12fd096eb4f2d07a8b23 (patch)
treea6a9bcc125cce95914e1f3249b94979185caa81c /src/mongo/s/chunk.cpp
parentd7b5703ae68a85bdb9f69f91453e3deced93cb92 (diff)
downloadmongo-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.cpp12
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;