aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorGeir Storli <geirst@oath.com>2018-02-23 13:54:24 +0100
committerGeir Storli <geirst@oath.com>2018-02-27 09:37:08 +0100
commitc23d4254fbeb47d110814046c70a08a4e2afcd12 (patch)
tree3fbd66bc7494aa147b29392fa60b9333d3e56fbf /clustercontroller-core/src/main/java/com/yahoo
parente6e2aeb2cb91ea389ccc4bb4c3eefad41e28f8b7 (diff)
Track whether BucketSpaceStats is valid or not.
Diffstat (limited to 'clustercontroller-core/src/main/java/com/yahoo')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentNodeStats.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentNodeStats.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentNodeStats.java
index cefb3c3c31f..d47ce45216e 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentNodeStats.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentNodeStats.java
@@ -14,20 +14,23 @@ public class ContentNodeStats {
private Map<String, BucketSpaceStats> bucketSpaces = new HashMap<>();
public static class BucketSpaceStats {
+ private boolean invalid;
private long bucketsTotal;
private long bucketsPending;
private BucketSpaceStats() {
+ this.invalid = true;
this.bucketsTotal = 0;
this.bucketsPending = 0;
}
private BucketSpaceStats(long bucketsTotal, long bucketsPending) {
+ this.invalid = false;
this.bucketsTotal = bucketsTotal;
this.bucketsPending = bucketsPending;
}
- public static BucketSpaceStats empty() {
+ public static BucketSpaceStats invalid() {
return new BucketSpaceStats();
}
@@ -43,7 +46,16 @@ public class ContentNodeStats {
return bucketsPending;
}
+ public boolean mayHaveBucketsPending() {
+ return (bucketsPending > 0) || invalid;
+ }
+
+ public boolean valid() {
+ return !invalid;
+ }
+
public void merge(BucketSpaceStats rhs, int factor) {
+ this.invalid |= rhs.invalid;
this.bucketsTotal += (factor * rhs.bucketsTotal);
this.bucketsPending += (factor * rhs.bucketsPending);
}
@@ -76,7 +88,7 @@ public class ContentNodeStats {
BucketSpaceStats.of(stats.getBucketStats().getTotal(),
stats.getBucketStats().getPending()));
} else {
- this.bucketSpaces.put(stats.getName(), BucketSpaceStats.empty());
+ this.bucketSpaces.put(stats.getName(), BucketSpaceStats.invalid());
}
}
}