diff options
author | Geir Storli <geirst@oath.com> | 2018-02-27 13:53:04 +0100 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2018-02-27 14:30:09 +0100 |
commit | f501d44bb86ffb4c09b2d46d3809e3c869ec7041 (patch) | |
tree | efd4c954a6619f6f423289a0a250c4de2800fe21 /clustercontroller-core/src/main | |
parent | 112279999e9d453698ed9f7edff6eb047dc23761 (diff) |
Wire buckets pending state into state version tracker.
Diffstat (limited to 'clustercontroller-core/src/main')
3 files changed, 14 insertions, 2 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateView.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateView.java index 6ce719a97de..62cd158c759 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateView.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateView.java @@ -112,6 +112,10 @@ public class ClusterStateView { StorageNodeStatsBridge.generate(hostInfo.getDistributor())); } + public ClusterStatsAggregator getStatsAggregator() { + return statsAggregator; + } + public String toString() { return clusterState.toString(); } diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsBucketsPendingState.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsBucketsPendingState.java index e556841c835..dfa64d72521 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsBucketsPendingState.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsBucketsPendingState.java @@ -17,8 +17,12 @@ public class ClusterStatsBucketsPendingState { this.prevMayHaveBucketsPending = false; } - public void updateAggregator(ClusterStatsAggregator newAggregator) { + public void syncBucketsPendingFlag() { prevMayHaveBucketsPending = aggregator.mayHaveBucketsPendingInGlobalSpace(); + } + + public void updateAggregator(ClusterStatsAggregator newAggregator) { + syncBucketsPendingFlag(); aggregator = newAggregator; } 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 78e587a7446..c2be8047a13 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 @@ -33,12 +33,14 @@ public class StateVersionTracker { private ClusterStateBundle currentClusterState = latestCandidateState; private ClusterStateView clusterStateView; + private ClusterStatsBucketsPendingState bucketsPendingState; private final LinkedList<ClusterStateHistoryEntry> clusterStateHistory = new LinkedList<>(); private int maxHistoryEntryCount = 50; StateVersionTracker() { clusterStateView = ClusterStateView.create(currentUnversionedState.getBaselineClusterState()); + bucketsPendingState = new ClusterStatsBucketsPendingState(clusterStateView.getStatsAggregator()); } void setVersionRetrievedFromZooKeeper(final int version) { @@ -84,6 +86,7 @@ public class StateVersionTracker { public void updateLatestCandidateStateBundle(final ClusterStateBundle candidateBundle) { assert(latestCandidateState.getBaselineClusterState().getVersion() == 0); latestCandidateState = candidateBundle; + bucketsPendingState.syncBucketsPendingFlag(); } /** @@ -122,6 +125,7 @@ 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()); + bucketsPendingState.updateAggregator(clusterStateView.getStatsAggregator()); } private void recordCurrentStateInHistoryAtTime(final long currentTimeMs) { @@ -138,7 +142,7 @@ public class StateVersionTracker { } boolean bucketSpaceMergeCompletionStateHasChanged() { - return false; // TODO wire changes in merge info + return bucketsPendingState.stateHasChanged(); } /* |