summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-04-22 13:10:58 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-04-25 16:28:29 -0400
commit8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60 (patch)
treef3dac8911228e22bdf34fc9c7ce910c861a9de6b
parent53e4c6733ccb6ca77892641e013882da8536f313 (diff)
downloadmongo-8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60.tar.gz
SERVER-22667 Introduce a MigrateInfoVector type
-rw-r--r--src/mongo/s/balance.cpp29
-rw-r--r--src/mongo/s/balance.h14
-rw-r--r--src/mongo/s/balancer_policy.cpp1
-rw-r--r--src/mongo/s/balancer_policy.h3
4 files changed, 18 insertions, 29 deletions
diff --git a/src/mongo/s/balance.cpp b/src/mongo/s/balance.cpp
index 2a2c3def3d6..6a8b94c496e 100644
--- a/src/mongo/s/balance.cpp
+++ b/src/mongo/s/balance.cpp
@@ -32,29 +32,21 @@
#include "mongo/s/balance.h"
-#include <algorithm>
-
#include "mongo/base/status_with.h"
-#include "mongo/bson/util/bson_extract.h"
#include "mongo/client/read_preference.h"
#include "mongo/client/remote_command_targeter.h"
#include "mongo/db/client.h"
-#include "mongo/db/jsobj.h"
#include "mongo/db/namespace_string.h"
#include "mongo/db/operation_context.h"
#include "mongo/db/server_options.h"
-#include "mongo/db/write_concern.h"
-#include "mongo/db/write_concern_options.h"
#include "mongo/rpc/get_status_from_command_result.h"
#include "mongo/s/balancer/balancer_configuration.h"
#include "mongo/s/balancer/cluster_statistics_impl.h"
-#include "mongo/s/balancer_policy.h"
#include "mongo/s/catalog/catalog_cache.h"
#include "mongo/s/catalog/catalog_manager.h"
#include "mongo/s/catalog/type_chunk.h"
#include "mongo/s/catalog/type_collection.h"
#include "mongo/s/catalog/type_mongos.h"
-#include "mongo/s/catalog/type_shard.h"
#include "mongo/s/catalog/type_tags.h"
#include "mongo/s/chunk_manager.h"
#include "mongo/s/config.h"
@@ -62,7 +54,6 @@
#include "mongo/s/client/shard.h"
#include "mongo/s/client/shard_registry.h"
#include "mongo/s/shard_util.h"
-#include "mongo/s/migration_secondary_throttle_options.h"
#include "mongo/stdx/memory.h"
#include "mongo/util/exit.h"
#include "mongo/util/fail_point_service.h"
@@ -81,6 +72,11 @@ using std::vector;
namespace {
+const Seconds kBalanceRoundDefaultInterval(10);
+const Seconds kShortBalanceRoundInterval(1);
+
+const auto getBalancer = ServiceContext::declareDecoration<Balancer>();
+
/**
* Utility class to generate timing and statistics for a single balancer round.
*/
@@ -152,11 +148,6 @@ void warnOnMultiVersion(const vector<ClusterStatistics::ShardStatistics>& cluste
warning() << sb.str();
}
-const Seconds kBalanceRoundDefaultInterval(10);
-const Seconds kShortBalanceRoundInterval(1);
-
-const auto getBalancer = ServiceContext::declareDecoration<Balancer>();
-
MONGO_FP_DECLARE(skipBalanceRound);
MONGO_FP_DECLARE(balancerRoundIntervalSetting);
@@ -390,7 +381,7 @@ bool Balancer::_checkOIDs(OperationContext* txn) {
return true;
}
-StatusWith<vector<MigrateInfo>> Balancer::_getCandidateChunks(OperationContext* txn) {
+StatusWith<MigrateInfoVector> Balancer::_getCandidateChunks(OperationContext* txn) {
vector<CollectionType> collections;
Status collsStatus =
@@ -400,17 +391,17 @@ StatusWith<vector<MigrateInfo>> Balancer::_getCandidateChunks(OperationContext*
}
if (collections.empty()) {
- return vector<MigrateInfo>();
+ return MigrateInfoVector();
}
const auto clusterStats = uassertStatusOK(_clusterStats->getStats(txn));
if (clusterStats.size() < 2) {
- return vector<MigrateInfo>();
+ return MigrateInfoVector();
}
OCCASIONALLY warnOnMultiVersion(clusterStats);
- std::vector<MigrateInfo> candidateChunks;
+ MigrateInfoVector candidateChunks;
// For each collection, check if the balancing policy recommends moving anything around.
for (const auto& coll : collections) {
@@ -535,7 +526,7 @@ StatusWith<vector<MigrateInfo>> Balancer::_getCandidateChunks(OperationContext*
}
int Balancer::_moveChunks(OperationContext* txn,
- const vector<MigrateInfo>& candidateChunks,
+ const MigrateInfoVector& candidateChunks,
const MigrationSecondaryThrottleOptions& secondaryThrottle,
bool waitForDelete) {
int movedCount = 0;
diff --git a/src/mongo/s/balance.h b/src/mongo/s/balance.h
index 3b808f485d9..7cdf867c6ab 100644
--- a/src/mongo/s/balance.h
+++ b/src/mongo/s/balance.h
@@ -31,13 +31,13 @@
#include <string>
#include <vector>
+#include "mongo/s/balancer_policy.h"
#include "mongo/util/background.h"
#include "mongo/util/timer.h"
namespace mongo {
class ClusterStatistics;
-struct MigrateInfo;
class MigrationSecondaryThrottleOptions;
class OperationContext;
template <typename T>
@@ -67,15 +67,15 @@ public:
return _clusterStats.get();
}
- // BackgroundJob methods
+private:
+ // BackgroundJob methods implementation
- virtual void run();
+ void run() override;
- virtual std::string name() const {
+ std::string name() const override {
return "Balancer";
}
-private:
/**
* Checks that the balancer can connect to all servers it needs to do its job.
*
@@ -102,7 +102,7 @@ private:
*
* Returns candidate chunks, one per collection, that could possibly be moved
*/
- StatusWith<std::vector<MigrateInfo>> _getCandidateChunks(OperationContext* txn);
+ StatusWith<MigrateInfoVector> _getCandidateChunks(OperationContext* txn);
/**
* Issues chunk migration request, one at a time.
@@ -113,7 +113,7 @@ private:
* @return number of chunks effectively moved
*/
int _moveChunks(OperationContext* txn,
- const std::vector<MigrateInfo>& candidateChunks,
+ const MigrateInfoVector& candidateChunks,
const MigrationSecondaryThrottleOptions& secondaryThrottle,
bool waitForDelete);
diff --git a/src/mongo/s/balancer_policy.cpp b/src/mongo/s/balancer_policy.cpp
index e4ad76cc2a6..e48d3f137c0 100644
--- a/src/mongo/s/balancer_policy.cpp
+++ b/src/mongo/s/balancer_policy.cpp
@@ -1,4 +1,3 @@
-// balancer_policy.cpp
/**
* Copyright (C) 2010 10gen Inc.
*
diff --git a/src/mongo/s/balancer_policy.h b/src/mongo/s/balancer_policy.h
index 88e9db26fad..14f2a21d037 100644
--- a/src/mongo/s/balancer_policy.h
+++ b/src/mongo/s/balancer_policy.h
@@ -1,5 +1,3 @@
-// @file balancer_policy.h
-
/**
* Copyright (C) 2010 10gen Inc.
*
@@ -70,6 +68,7 @@ struct MigrateInfo {
BSONObj maxKey;
};
+typedef std::vector<MigrateInfo> MigrateInfoVector;
typedef std::vector<ClusterStatistics::ShardStatistics> ShardStatisticsVector;
typedef std::map<ShardId, std::vector<ChunkType>> ShardToChunksMap;