summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorGeir Storli <geirst@oath.com>2018-02-27 16:29:19 +0100
committerGeir Storli <geirst@oath.com>2018-02-27 16:29:19 +0100
commit52655b4add1d1771b3434e005628bdc0ef633bf6 (patch)
treea3d5a21b884641a024973fb063863a1348d49428 /clustercontroller-core
parent86029a0a0eefacc98b5c86cd8921eed98f4882e6 (diff)
Add switch to enable multiple bucket spaces in cluster controller.
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsAggregator.java6
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStatsChangeTracker.java1
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java2
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateVersionTracker.java4
4 files changed, 11 insertions, 2 deletions
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<ContentNodeStats> 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