diff options
author | Geir Storli <geirst@oath.com> | 2018-02-23 13:54:24 +0100 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2018-02-27 09:37:08 +0100 |
commit | c23d4254fbeb47d110814046c70a08a4e2afcd12 (patch) | |
tree | 3fbd66bc7494aa147b29392fa60b9333d3e56fbf /clustercontroller-core/src/main/java/com/yahoo | |
parent | e6e2aeb2cb91ea389ccc4bb4c3eefad41e28f8b7 (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.java | 16 |
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()); } } } |