summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/balancer/cluster_statistics.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-10-11 16:48:18 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-10-14 13:44:21 -0400
commit5dbe9c097231652f8eee97a66e24d8c448a3f9a1 (patch)
treea0f0aeccf187313f4be9e6cc35b6252ca5172125 /src/mongo/db/s/balancer/cluster_statistics.cpp
parent759bd57056d51ac856296e4c9672f1ea2efe4b33 (diff)
downloadmongo-5dbe9c097231652f8eee97a66e24d8c448a3f9a1.tar.gz
SERVER-26579 Do not move chunks to shards with above optimal chunk count
Diffstat (limited to 'src/mongo/db/s/balancer/cluster_statistics.cpp')
-rw-r--r--src/mongo/db/s/balancer/cluster_statistics.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/mongo/db/s/balancer/cluster_statistics.cpp b/src/mongo/db/s/balancer/cluster_statistics.cpp
index 495a54b0493..125f11d3551 100644
--- a/src/mongo/db/s/balancer/cluster_statistics.cpp
+++ b/src/mongo/db/s/balancer/cluster_statistics.cpp
@@ -39,8 +39,6 @@ ClusterStatistics::ClusterStatistics() = default;
ClusterStatistics::~ClusterStatistics() = default;
-ClusterStatistics::ShardStatistics::ShardStatistics() = default;
-
ClusterStatistics::ShardStatistics::ShardStatistics(ShardId inShardId,
uint64_t inMaxSizeMB,
uint64_t inCurrSizeMB,
@@ -48,9 +46,9 @@ ClusterStatistics::ShardStatistics::ShardStatistics(ShardId inShardId,
std::set<std::string> inShardTags,
std::string inMongoVersion)
: shardId(std::move(inShardId)),
- maxSizeMB(std::move(inMaxSizeMB)),
- currSizeMB(std::move(inCurrSizeMB)),
- isDraining(std::move(inIsDraining)),
+ maxSizeMB(inMaxSizeMB),
+ currSizeMB(inCurrSizeMB),
+ isDraining(inIsDraining),
shardTags(std::move(inShardTags)),
mongoVersion(std::move(inMongoVersion)) {}
@@ -62,6 +60,14 @@ bool ClusterStatistics::ShardStatistics::isSizeMaxed() const {
return currSizeMB >= maxSizeMB;
}
+bool ClusterStatistics::ShardStatistics::isSizeExceeded() const {
+ if (!maxSizeMB || !currSizeMB) {
+ return false;
+ }
+
+ return currSizeMB > maxSizeMB;
+}
+
BSONObj ClusterStatistics::ShardStatistics::toBSON() const {
BSONObjBuilder builder;
builder.append("id", shardId.toString());