summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahoo-inc.com>2017-10-11 11:17:05 +0200
committerTor Brede Vekterli <vekterli@yahoo-inc.com>2017-10-11 11:17:05 +0200
commit92a0453920fb9e1962108b79bd4c44e9a55edae0 (patch)
treedfb3d4e05caa747db956b2d7e5fcd5d38e4be5ec /clustercontroller-core
parent41954227a91b74499f24326ab288ea21f8eae604 (diff)
Avoid busy-looping when distributors fail to ACK state version
Diffstat (limited to 'clustercontroller-core')
-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/SystemStateBroadcaster.java8
2 files changed, 3 insertions, 7 deletions
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 120b482e11d..76d59622fe7 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
@@ -550,7 +550,7 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd
if ( ! isRunning()) { return; }
if (masterElectionHandler.isMaster()) {
didWork |= broadcastClusterStateToEligibleNodes();
- didWork |= systemStateBroadcaster.checkIfClusterStateIsAckedByAllDistributors(database, databaseContext, this);
+ systemStateBroadcaster.checkIfClusterStateIsAckedByAllDistributors(database, databaseContext, this);
}
if ( ! isRunning()) { return; }
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/SystemStateBroadcaster.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/SystemStateBroadcaster.java
index 8860bef2fae..5c035a0d5a7 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/SystemStateBroadcaster.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/SystemStateBroadcaster.java
@@ -109,15 +109,12 @@ public class SystemStateBroadcaster {
* Checks if all distributor nodes have ACKed the most recent cluster state. Iff this
* is the case, triggers handleAllDistributorsInSync() on the provided FleetController
* object and updates the broadcaster's last known in-sync cluster state version.
- *
- * Returns true if distributor nodes were checked, false if cluster is already in sync
- * or no state has been published yet.
*/
- boolean checkIfClusterStateIsAckedByAllDistributors(DatabaseHandler database,
+ void checkIfClusterStateIsAckedByAllDistributors(DatabaseHandler database,
DatabaseHandler.Context dbContext,
FleetController fleetController) throws InterruptedException {
if ((systemState == null) || (lastClusterStateInSync == systemState.getVersion())) {
- return false; // Nothing to do for the current state
+ return; // Nothing to do for the current state
}
boolean anyOutdatedDistributorNodes = dbContext.getCluster().getNodeInfo().stream()
.filter(NodeInfo::isDistributor)
@@ -128,7 +125,6 @@ public class SystemStateBroadcaster {
lastClusterStateInSync = systemState.getVersion();
fleetController.handleAllDistributorsInSync(database, dbContext);
}
- return true;
}
public boolean broadcastNewState(DatabaseHandler database,