diff options
author | Geir Storli <geirst@oath.com> | 2018-02-23 15:11:10 +0100 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2018-02-27 09:37:08 +0100 |
commit | dbeb5f7410923de5a30b83a27c5294560df9838e (patch) | |
tree | 1a9b54fdcb63e21033b8dd866de995b4ac125121 /clustercontroller-core/src/main | |
parent | c23d4254fbeb47d110814046c70a08a4e2afcd12 (diff) |
Add class checking whether a bucket space on a content node might have buckets pending.
Diffstat (limited to 'clustercontroller-core/src/main')
2 files changed, 32 insertions, 0 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AggregatedStatsMergePendingChecker.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AggregatedStatsMergePendingChecker.java new file mode 100644 index 00000000000..6eb4d17a63d --- /dev/null +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AggregatedStatsMergePendingChecker.java @@ -0,0 +1,28 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.core; + +/** + * Class checking whether a particular bucket space on a content node might have buckets pending. + * + * Aggregated stats over the entire content cluster is used to check this. + */ +public class AggregatedStatsMergePendingChecker implements MergePendingChecker { + + private final ContentClusterStats clusterStats; + + public AggregatedStatsMergePendingChecker(ContentClusterStats clusterStats) { + this.clusterStats = clusterStats; + } + + @Override + public boolean hasMergesPending(String bucketSpace, int contentNodeIndex) { + ContentNodeStats nodeStats = clusterStats.getContentNode(contentNodeIndex); + if (nodeStats != null) { + ContentNodeStats.BucketSpaceStats bucketSpaceStats = nodeStats.getBucketSpace(bucketSpace); + if (bucketSpaceStats != null && bucketSpaceStats.mayHaveBucketsPending()) { + return true; + } + } + return false; + } +} 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 d47ce45216e..b579b406890 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 @@ -125,6 +125,10 @@ public class ContentNodeStats { } } + public BucketSpaceStats getBucketSpace(String bucketSpace) { + return bucketSpaces.get(bucketSpace); + } + public Map<String, BucketSpaceStats> getBucketSpaces() { return bucketSpaces; } |