From e3d4838bf5cdd6e058b56b6e424f34ffe958d4ff Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Mon, 18 Oct 2021 10:52:24 +0200 Subject: Always reconfigure (idempotent), and to only non-retired servers --- .../main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'zookeeper-server/zookeeper-server-common/src/main/java') 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.) // 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 servers(ZookeeperServerConfig config) { return config.server().stream() + .filter(server -> ! server.retired()) .map(server -> serverSpec(server, config.clientPort(), false)) .collect(toList()); } -- cgit v1.2.3