summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/balancer/balancer_policy.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/balancer/balancer_policy.h')
-rw-r--r--src/mongo/db/s/balancer/balancer_policy.h21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/mongo/db/s/balancer/balancer_policy.h b/src/mongo/db/s/balancer/balancer_policy.h
index 6b81068e43f..4dc7a575e74 100644
--- a/src/mongo/db/s/balancer/balancer_policy.h
+++ b/src/mongo/db/s/balancer/balancer_policy.h
@@ -56,13 +56,10 @@ struct ZoneRange {
};
struct MigrateInfo {
- enum MigrationReason { drain, zoneViolation, chunksImbalance };
-
MigrateInfo(const ShardId& a_to,
const NamespaceString& a_nss,
const ChunkType& a_chunk,
- MoveChunkRequest::ForceJumbo a_forceJumbo,
- MigrationReason a_reason);
+ MoveChunkRequest::ForceJumbo a_forceJumbo);
MigrateInfo(const ShardId& a_to,
const ShardId& a_from,
@@ -71,8 +68,7 @@ struct MigrateInfo {
const BSONObj& a_min,
const BSONObj& a_max,
const ChunkVersion& a_version,
- MoveChunkRequest::ForceJumbo a_forceJumbo,
- MigrationReason a_reason);
+ MoveChunkRequest::ForceJumbo a_forceJumbo);
std::string getName() const;
@@ -88,11 +84,14 @@ struct MigrateInfo {
BSONObj maxKey;
ChunkVersion version;
MoveChunkRequest::ForceJumbo forceJumbo;
- MigrationReason reason;
};
+enum MigrationReason { none, drain, zoneViolation, chunksImbalance };
+
typedef std::vector<MigrateInfo> MigrateInfoVector;
+typedef std::pair<MigrateInfoVector, MigrationReason> MigrateInfosWithReason;
+
typedef std::vector<BSONObj> SplitPoints;
/**
@@ -385,10 +384,10 @@ public:
* used for migrations. Used so we don't return multiple conflicting migrations for the same
* shard.
*/
- static std::vector<MigrateInfo> balance(const ShardStatisticsVector& shardStats,
- const DistributionStatus& distribution,
- stdx::unordered_set<ShardId>* usedShards,
- bool forceJumbo);
+ static MigrateInfosWithReason balance(const ShardStatisticsVector& shardStats,
+ const DistributionStatus& distribution,
+ stdx::unordered_set<ShardId>* usedShards,
+ bool forceJumbo);
/**
* Using the specified distribution information, returns a suggested better location for the