aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java
diff options
context:
space:
mode:
Diffstat (limited to 'clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java
index d4cd8f902c6..0673a10c282 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java
@@ -36,10 +36,13 @@ public class StateVersionTracker {
private final LinkedList<ClusterStateHistoryEntry> clusterStateHistory = new LinkedList<>();
private int maxHistoryEntryCount = 50;
+ private double minMergeCompletionRatio;
- StateVersionTracker() {
+ StateVersionTracker(double minMergeCompletionRatio) {
clusterStateView = ClusterStateView.create(currentUnversionedState.getBaselineClusterState());
- clusterStatsChangeTracker = new ClusterStatsChangeTracker(clusterStateView.getStatsAggregator().getAggregatedStats());
+ clusterStatsChangeTracker = new ClusterStatsChangeTracker(clusterStateView.getStatsAggregator().getAggregatedStats(),
+ minMergeCompletionRatio);
+ this.minMergeCompletionRatio = minMergeCompletionRatio;
}
void setVersionRetrievedFromZooKeeper(final int version) {
@@ -58,6 +61,10 @@ public class StateVersionTracker {
this.maxHistoryEntryCount = maxHistoryEntryCount;
}
+ void setMinMergeCompletionRatio(double minMergeCompletionRatio) {
+ this.minMergeCompletionRatio = minMergeCompletionRatio;
+ }
+
int getCurrentVersion() {
return this.currentVersion;
}
@@ -128,7 +135,8 @@ public class StateVersionTracker {
newStateBundle.getBaselineClusterState().getDistributionBitCount());
// TODO should this take place in updateLatestCandidateStateBundle instead? I.e. does it require a consolidated state?
clusterStateView = ClusterStateView.create(currentClusterState.getBaselineClusterState());
- clusterStatsChangeTracker.updateAggregatedStats(clusterStateView.getStatsAggregator().getAggregatedStats());
+ clusterStatsChangeTracker.updateAggregatedStats(clusterStateView.getStatsAggregator().getAggregatedStats(),
+ minMergeCompletionRatio);
}
private void recordCurrentStateInHistoryAtTime(final long currentTimeMs) {
@@ -149,7 +157,7 @@ public class StateVersionTracker {
}
MergePendingChecker createMergePendingChecker() {
- return clusterStateView.getStatsAggregator().createMergePendingChecker();
+ return clusterStateView.getStatsAggregator().createMergePendingChecker(minMergeCompletionRatio);
}
/*