diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-04-22 13:10:58 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-04-25 16:28:29 -0400 |
commit | 8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60 (patch) | |
tree | f3dac8911228e22bdf34fc9c7ce910c861a9de6b | |
parent | 53e4c6733ccb6ca77892641e013882da8536f313 (diff) | |
download | mongo-8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60.tar.gz |
SERVER-22667 Introduce a MigrateInfoVector type
-rw-r--r-- | src/mongo/s/balance.cpp | 29 | ||||
-rw-r--r-- | src/mongo/s/balance.h | 14 | ||||
-rw-r--r-- | src/mongo/s/balancer_policy.cpp | 1 | ||||
-rw-r--r-- | src/mongo/s/balancer_policy.h | 3 |
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; |