From 52655b4add1d1771b3434e005628bdc0ef633bf6 Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Tue, 27 Feb 2018 16:29:19 +0100 Subject: Add switch to enable multiple bucket spaces in cluster controller. --- .../yahoo/vespa/clustercontroller/core/ClusterStatsAggregator.java | 6 +++++- .../vespa/clustercontroller/core/ClusterStatsChangeTracker.java | 1 + .../com/yahoo/vespa/clustercontroller/core/FleetController.java | 2 +- .../com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java | 4 ++++ 4 files changed, 11 insertions(+), 2 deletions(-) (limited to 'clustercontroller-core') diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsAggregator.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsAggregator.java index 4a2ce1420de..3b8cb14e977 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsAggregator.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsAggregator.java @@ -56,7 +56,7 @@ public class ClusterStatsAggregator { if (!hasUpdatesFromAllDistributors()) { return true; } - AggregatedStatsMergePendingChecker checker = new AggregatedStatsMergePendingChecker(aggregatedStats); + MergePendingChecker checker = createMergePendingChecker(); for (Iterator itr = aggregatedStats.iterator(); itr.hasNext(); ) { ContentNodeStats stats = itr.next(); if (checker.mayHaveMergesPending(FixedBucketSpaces.globalSpace(), stats.getNodeIndex())) { @@ -66,6 +66,10 @@ public class ClusterStatsAggregator { return false; } + MergePendingChecker createMergePendingChecker() { + return new AggregatedStatsMergePendingChecker(aggregatedStats); + } + /** * Update the aggregator with the newest available stats from a distributor. */ diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsChangeTracker.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsChangeTracker.java index 3ed6fc332ed..ed32a5f4b45 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsChangeTracker.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsChangeTracker.java @@ -35,4 +35,5 @@ public class ClusterStatsChangeTracker { } return false; } + } diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java index e100fea780a..e755c2b8117 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java @@ -824,7 +824,7 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd } private ClusterStateDeriver createBucketSpaceStateDeriver() { - return new MaintenanceWhenPendingGlobalMerges((space, index) -> false); // TODO wire with stats aggregator + return new MaintenanceWhenPendingGlobalMerges(stateVersionTracker.createMergePendingChecker()); } /** 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 7232b2f9346..2063bdb24c9 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 @@ -144,6 +144,10 @@ public class StateVersionTracker { return clusterStatsChangeTracker.statsHaveChanged(); } + MergePendingChecker createMergePendingChecker() { + return clusterStateView.getStatsAggregator().createMergePendingChecker(); + } + /* TODO test and implement - derived default space down-condition can only _keep_ a node in maintenance (down), not transition it from up -> maintenance -- cgit v1.2.3