summaryrefslogtreecommitdiff
path: root/src/mongo/s/grid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/grid.cpp')
-rw-r--r--src/mongo/s/grid.cpp120
1 files changed, 58 insertions, 62 deletions
diff --git a/src/mongo/s/grid.cpp b/src/mongo/s/grid.cpp
index d687a7f8129..e36e1efac54 100644
--- a/src/mongo/s/grid.cpp
+++ b/src/mongo/s/grid.cpp
@@ -41,87 +41,83 @@
namespace mongo {
- Grid::Grid() : _allowLocalShard(true) {
+Grid::Grid() : _allowLocalShard(true) {}
- }
-
- void Grid::init(std::unique_ptr<CatalogManager> catalogManager,
- std::unique_ptr<ShardRegistry> shardRegistry) {
+void Grid::init(std::unique_ptr<CatalogManager> catalogManager,
+ std::unique_ptr<ShardRegistry> shardRegistry) {
+ invariant(!_catalogManager);
+ invariant(!_catalogCache);
+ invariant(!_shardRegistry);
- invariant(!_catalogManager);
- invariant(!_catalogCache);
- invariant(!_shardRegistry);
+ _catalogManager = std::move(catalogManager);
+ _catalogCache = stdx::make_unique<CatalogCache>(_catalogManager.get());
+ _shardRegistry = std::move(shardRegistry);
+}
- _catalogManager = std::move(catalogManager);
- _catalogCache = stdx::make_unique<CatalogCache>(_catalogManager.get());
- _shardRegistry = std::move(shardRegistry);
+StatusWith<std::shared_ptr<DBConfig>> Grid::implicitCreateDb(const std::string& dbName) {
+ auto status = catalogCache()->getDatabase(dbName);
+ if (status.isOK()) {
+ return status;
}
- StatusWith<std::shared_ptr<DBConfig>> Grid::implicitCreateDb(const std::string& dbName) {
- auto status = catalogCache()->getDatabase(dbName);
- if (status.isOK()) {
- return status;
+ if (status == ErrorCodes::DatabaseNotFound) {
+ auto statusCreateDb = catalogManager()->createDatabase(dbName);
+ if (statusCreateDb.isOK() || statusCreateDb == ErrorCodes::NamespaceExists) {
+ return catalogCache()->getDatabase(dbName);
}
- if (status == ErrorCodes::DatabaseNotFound) {
- auto statusCreateDb = catalogManager()->createDatabase(dbName);
- if (statusCreateDb.isOK() || statusCreateDb == ErrorCodes::NamespaceExists) {
- return catalogCache()->getDatabase(dbName);
- }
+ return statusCreateDb;
+ }
- return statusCreateDb;
- }
+ return status;
+}
- return status;
- }
+bool Grid::allowLocalHost() const {
+ return _allowLocalShard;
+}
- bool Grid::allowLocalHost() const {
- return _allowLocalShard;
+void Grid::setAllowLocalHost(bool allow) {
+ _allowLocalShard = allow;
+}
+
+/*
+ * Returns whether balancing is enabled, with optional namespace "ns" parameter for balancing on a particular
+ * collection.
+ */
+bool Grid::shouldBalance(const SettingsType& balancerSettings) const {
+ if (balancerSettings.isBalancerStoppedSet() && balancerSettings.getBalancerStopped()) {
+ return false;
}
- void Grid::setAllowLocalHost( bool allow ) {
- _allowLocalShard = allow;
+ if (balancerSettings.isBalancerActiveWindowSet()) {
+ boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();
+ return balancerSettings.inBalancingWindow(now);
}
- /*
- * Returns whether balancing is enabled, with optional namespace "ns" parameter for balancing on a particular
- * collection.
- */
- bool Grid::shouldBalance(const SettingsType& balancerSettings) const {
- if (balancerSettings.isBalancerStoppedSet() && balancerSettings.getBalancerStopped()) {
- return false;
- }
+ return true;
+}
- if (balancerSettings.isBalancerActiveWindowSet()) {
- boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();
- return balancerSettings.inBalancingWindow(now);
- }
+bool Grid::getConfigShouldBalance() const {
+ auto balSettingsResult = grid.catalogManager()->getGlobalSettings(SettingsType::BalancerDocKey);
+ if (!balSettingsResult.isOK()) {
+ warning() << balSettingsResult.getStatus();
+ return false;
+ }
+ SettingsType balSettings = balSettingsResult.getValue();
+ if (!balSettings.isKeySet()) {
+ // Balancer settings doc does not exist. Default to yes.
return true;
}
- bool Grid::getConfigShouldBalance() const {
- auto balSettingsResult =
- grid.catalogManager()->getGlobalSettings(SettingsType::BalancerDocKey);
- if (!balSettingsResult.isOK()) {
- warning() << balSettingsResult.getStatus();
- return false;
- }
- SettingsType balSettings = balSettingsResult.getValue();
-
- if (!balSettings.isKeySet()) {
- // Balancer settings doc does not exist. Default to yes.
- return true;
- }
-
- return shouldBalance(balSettings);
- }
+ return shouldBalance(balSettings);
+}
- void Grid::clearForUnitTests() {
- _catalogManager.reset();
- _catalogCache.reset();
- _shardRegistry.reset();
- }
+void Grid::clearForUnitTests() {
+ _catalogManager.reset();
+ _catalogCache.reset();
+ _shardRegistry.reset();
+}
- Grid grid;
+Grid grid;
}