aboutsummaryrefslogtreecommitdiffstats
path: root/zookeeper-server/zookeeper-server-common/src/main/java
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-10-18 10:52:24 +0200
committerJon Marius Venstad <venstad@gmail.com>2022-01-11 10:31:10 +0100
commite3d4838bf5cdd6e058b56b6e424f34ffe958d4ff (patch)
tree40f5cc89138060e0b13497f0386de24d07a76b67 /zookeeper-server/zookeeper-server-common/src/main/java
parent38a353a10345b2a5e17d241057bdbf662e4b05d1 (diff)
Always reconfigure (idempotent), and to only non-retired servers
Diffstat (limited to 'zookeeper-server/zookeeper-server-common/src/main/java')
-rw-r--r--zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java12
1 files changed, 2 insertions, 10 deletions
diff --git a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java
index 514d45c7e77..8b46c67e0f6 100644
--- a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java
+++ b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java
@@ -57,7 +57,7 @@ public class Reconfigurer extends AbstractComponent {
zooKeeperRunner = startServer(newConfig, server);
}
- if (shouldReconfigure(newConfig)) {
+ if (newConfig.dynamicReconfiguration()) {
reconfigure(newConfig);
}
return peer;
@@ -73,23 +73,14 @@ public class Reconfigurer extends AbstractComponent {
}
}
- private boolean shouldReconfigure(ZookeeperServerConfig newConfig) {
- if (!newConfig.dynamicReconfiguration()) return false;
- if (activeConfig == null) return false;
- return ! newConfig.equals(activeConfig());
- }
-
private ZooKeeperRunner startServer(ZookeeperServerConfig zookeeperServerConfig, VespaZooKeeperServer server) {
ZooKeeperRunner runner = new ZooKeeperRunner(zookeeperServerConfig, server);
activeConfig = zookeeperServerConfig;
return runner;
}
- // TODO jonmv: unify server config writing here and in Configurator
// TODO jonmv: read dynamic file, discard if old quorum impossible (config file + .dynamic.<id>)
// TODO jonmv: if dynamic file, all unlisted servers are observers; otherwise joiners are observers
- // TODO jonmv: use bulk mode, i.e., supply only new servers
- // TODO jonmv: always reconfigure when dynamic config is used, and to only non-retired nodes
// TODO jonmv: verify reconfig by issuing a dummy write
// TODO jonmv: wrap Curator in Provider, for Curator shutdown
// TODO jonmv: scale down to 1 server as well
@@ -153,6 +144,7 @@ public class Reconfigurer extends AbstractComponent {
private static List<String> servers(ZookeeperServerConfig config) {
return config.server().stream()
+ .filter(server -> ! server.retired())
.map(server -> serverSpec(server, config.clientPort(), false))
.collect(toList());
}