From db764264a51b0384ff321b8c1c175c8549a35d23 Mon Sep 17 00:00:00 2001
From: Harald Musum
Date: Tue, 30 May 2023 21:34:29 +0200
Subject: Remove use of stateGatherCount config, simplify and deprecate config
field
---
.../ClusterControllerClusterConfigurer.java | 1 -
.../vespa/clustercontroller/core/FleetController.java | 2 +-
.../clustercontroller/core/FleetControllerOptions.java | 15 ---------------
.../clustercontroller/core/MasterElectionHandler.java | 6 +++---
.../core/status/LegacyIndexPageRequestHandler.java | 5 ++---
configdefinitions/src/vespa/fleetcontroller.def | 1 +
6 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterControllerClusterConfigurer.java b/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterControllerClusterConfigurer.java
index 786928391a5..a893abb519e 100644
--- a/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterControllerClusterConfigurer.java
+++ b/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterControllerClusterConfigurer.java
@@ -69,7 +69,6 @@ public class ClusterControllerClusterConfigurer extends AbstractComponent {
builder.setCount(config.fleet_controller_count());
builder.setZooKeeperSessionTimeout((int) (config.zookeeper_session_timeout() * 1000));
builder.setMasterZooKeeperCooldownPeriod((int) (config.master_zookeeper_cooldown_period() * 1000));
- builder.setStateGatherCount(config.state_gather_count());
builder.setRpcPort(config.rpc_port());
builder.setHttpPort(config.http_port());
builder.setMaxTransitionTime(NodeType.STORAGE, config.storage_transition_time());
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 6876ac8cf56..42460b5943e 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
@@ -561,7 +561,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
if ( ! isRunning()) { return; }
- if (masterElectionHandler.isAmongNthFirst(options.stateGatherCount())) {
+ if (masterElectionHandler.isFirstInLine()) {
didWork |= resyncLocallyCachedState(); // Calls to metricUpdate.forWork inside method
} else {
stepDownAsStateGatherer();
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java
index 355c4b766f6..bac6a838300 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java
@@ -24,7 +24,6 @@ public class FleetControllerOptions {
private final String clusterName;
private final int fleetControllerIndex;
private final int fleetControllerCount;
- private final int stateGatherCount;
private final String[] slobrokConnectionSpecs;
private final int rpcPort;
@@ -132,7 +131,6 @@ public class FleetControllerOptions {
private FleetControllerOptions(String clusterName,
int fleetControllerIndex,
int fleetControllerCount,
- int stateGatherCount,
String[] slobrokConnectionSpecs,
int rpcPort,
int httpPort,
@@ -174,7 +172,6 @@ public class FleetControllerOptions {
this.clusterName = clusterName;
this.fleetControllerIndex = fleetControllerIndex;
this.fleetControllerCount = fleetControllerCount;
- this.stateGatherCount = stateGatherCount;
this.slobrokConnectionSpecs = slobrokConnectionSpecs;
this.rpcPort = rpcPort;
this.httpPort = httpPort;
@@ -235,10 +232,6 @@ public class FleetControllerOptions {
return fleetControllerCount;
}
- public int stateGatherCount() {
- return stateGatherCount;
- }
-
public String[] slobrokConnectionSpecs() {
return slobrokConnectionSpecs;
}
@@ -394,7 +387,6 @@ public class FleetControllerOptions {
private String clusterName;
private int index = 0;
private int count = 1;
- private int stateGatherCount = 1;
private String[] slobrokConnectionSpecs;
private int rpcPort = 0;
private int httpPort = 0;
@@ -464,11 +456,6 @@ public class FleetControllerOptions {
return this;
}
- public Builder setStateGatherCount(int stateGatherCount) {
- this.stateGatherCount = stateGatherCount;
- return this;
- }
-
public Builder setSlobrokConnectionSpecs(String[] slobrokConnectionSpecs) {
Objects.requireNonNull(slobrokConnectionSpecs, "slobrokConnectionSpecs cannot be null");
this.slobrokConnectionSpecs = slobrokConnectionSpecs;
@@ -694,7 +681,6 @@ public class FleetControllerOptions {
return new FleetControllerOptions(clusterName,
index,
count,
- stateGatherCount,
slobrokConnectionSpecs,
rpcPort,
httpPort,
@@ -740,7 +726,6 @@ public class FleetControllerOptions {
builder.clusterName = options.clusterName;
builder.index = options.fleetControllerIndex;
builder.count = options.fleetControllerCount;
- builder.stateGatherCount = options.stateGatherCount;
builder.slobrokConnectionSpecs = options.slobrokConnectionSpecs;
builder.rpcPort = options.rpcPort;
builder.httpPort = options.httpPort;
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java
index b041e6b14f8..fa303533355 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java
@@ -118,7 +118,7 @@ public class MasterElectionHandler implements MasterInterface {
return 2 * followers <= totalCount;
}
- public boolean isAmongNthFirst(int first) { return (nextInLineCount < first); }
+ public boolean isFirstInLine() { return (nextInLineCount < 1); }
public boolean watchMasterElection(DatabaseHandler database, DatabaseHandler.DatabaseContext dbContext) {
if (totalCount == 1 && !usingZooKeeper) {
@@ -251,7 +251,7 @@ public class MasterElectionHandler implements MasterInterface {
nextMasterData = null;
}
- public void writeHtmlState(StringBuilder sb, int stateGatherCount) {
+ public void writeHtmlState(StringBuilder sb) {
sb.append("Master state
\n");
Integer master = getMaster();
if (master != null) {
@@ -270,7 +270,7 @@ public class MasterElectionHandler implements MasterInterface {
.append(" before electing new master unless all possible master candidates are online.
");
}
}
- if ((master == null || master != index) && nextInLineCount < stateGatherCount) {
+ if ((master == null || master != index) && nextInLineCount < 1) {
sb.append("As we are number ").append(nextInLineCount)
.append(" in line for taking over as master, we're gathering state from nodes.
");
sb.append("As we are not the master, we don't know about nodes current system state"
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java
index 3297d511469..5aae401e157 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java
@@ -81,7 +81,7 @@ public class LegacyIndexPageRequestHandler implements StatusPageServer.RequestHa
.append(" ]
\n");
content.append("UTC time when creating this page: | ").append(RealTimer.printDateNoMilliSeconds(currentTime, tz)).append(" |
");
content.append("Cluster controller uptime: | " + RealTimer.printDuration(currentTime - startedTime) + " |
");
- if (masterElectionHandler.isAmongNthFirst(options.stateGatherCount())) {
+ if (masterElectionHandler.isFirstInLine()) {
// Table overview of all the nodes
writeHtmlState(cluster, content, timer, stateVersionTracker, options, eventLog);
// Current cluster state and cluster state history
@@ -91,7 +91,7 @@ public class LegacyIndexPageRequestHandler implements StatusPageServer.RequestHa
writeHtmlState(content, options);
}
// State of master election
- masterElectionHandler.writeHtmlState(content, options.stateGatherCount());
+ masterElectionHandler.writeHtmlState(content);
// Overview of current config
writeHtmlState(content, options);
// Event log
@@ -223,7 +223,6 @@ public class LegacyIndexPageRequestHandler implements StatusPageServer.RequestHa
sb.append("Cluster name | ").append(options.clusterName()).append(" |
");
sb.append("Fleet controller index | ").append(options.fleetControllerIndex()).append("/").append(options.fleetControllerCount()).append(" |
");
- sb.append("Number of fleetcontrollers gathering states from nodes | ").append(options.stateGatherCount()).append(" |
");
sb.append("Slobrok connection spec | ").append(slobrokspecs).append(" |
");
sb.append("RPC port | ").append(options.rpcPort() == 0 ? "Pick random available" : options.rpcPort()).append(" |
");
diff --git a/configdefinitions/src/vespa/fleetcontroller.def b/configdefinitions/src/vespa/fleetcontroller.def
index 93a20e4ee0d..c3e161eb038 100644
--- a/configdefinitions/src/vespa/fleetcontroller.def
+++ b/configdefinitions/src/vespa/fleetcontroller.def
@@ -29,6 +29,7 @@ master_zookeeper_cooldown_period double default=60.0
## If set to 1, only master will gather state. If set higher, others will
## also do so, prioritizing those fleetcontrollers likely to be the ones to
## take over if the master fails.
+# TODO: Deprecated, not used anymore, remove in Vespa 9
state_gather_count int default=1
## Location of ZooKeeper servers
--
cgit v1.2.3