diff options
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.java | 16 |
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); } /* |