From c662ac1850acc7f6d1dc61ef30592908f1d510c0 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Mon, 9 Nov 2020 11:55:22 +0100 Subject: Add cluster name to reindexing status root --- .../ai/vespa/reindexing/ReindexingCurator.java | 23 +++++++++++----------- .../ai/vespa/reindexing/ReindexingMaintainer.java | 4 +++- .../java/ai/vespa/reindexing/ReindexerTest.java | 2 +- .../ai/vespa/reindexing/ReindexingCuratorTest.java | 4 ++-- 4 files changed, 18 insertions(+), 15 deletions(-) (limited to 'clustercontroller-reindexer/src') diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java index e870a89914a..2044e6869f6 100644 --- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java +++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java @@ -16,7 +16,6 @@ import com.yahoo.yolean.Exceptions; import java.time.Duration; import java.time.Instant; -import java.util.concurrent.TimeoutException; import java.util.function.Function; import static java.util.Objects.requireNonNull; @@ -37,43 +36,45 @@ public class ReindexingCurator { private static final String STATE = "state"; private static final String MESSAGE = "message"; - private static final Path rootPath = Path.fromString("/reindexing/v1"); - private static final Path statusPath = rootPath.append("status"); - private static final Path lockPath = rootPath.append("lock"); - private final Curator curator; + private final String clusterName; private final ReindexingSerializer serializer; private final Duration lockTimeout; - public ReindexingCurator(Curator curator, DocumentTypeManager manager) { - this(curator, manager, Duration.ofSeconds(1)); + public ReindexingCurator(Curator curator, String clusterName, DocumentTypeManager manager) { + this(curator, clusterName, manager, Duration.ofSeconds(1)); } - ReindexingCurator(Curator curator, DocumentTypeManager manager, Duration lockTimeout) { + ReindexingCurator(Curator curator, String clusterName, DocumentTypeManager manager, Duration lockTimeout) { this.curator = curator; + this.clusterName = clusterName; this.serializer = new ReindexingSerializer(manager); this.lockTimeout = lockTimeout; } public Reindexing readReindexing() { - return curator.getData(statusPath).map(serializer::deserialize) + return curator.getData(statusPath()).map(serializer::deserialize) .orElse(Reindexing.empty()); } public void writeReindexing(Reindexing reindexing) { - curator.set(statusPath, serializer.serialize(reindexing)); + curator.set(statusPath(), serializer.serialize(reindexing)); } /** This lock must be held to manipulate reindexing state, or by whoever has a running visitor. */ public Lock lockReindexing() throws ReindexingLockException { try { - return curator.lock(lockPath, lockTimeout); + return curator.lock(lockPath(), lockTimeout); } catch (UncheckedTimeoutException e) { // TODO jonmv: Avoid use of guava classes. throw new ReindexingLockException(e); } } + private Path rootPath() { return Path.fromString("/reindexing/v1/" + clusterName); } + private Path statusPath() { return rootPath().append("status"); } + private Path lockPath() { return rootPath().append("lock"); } + private static class ReindexingSerializer { diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java index 0addf12b4c1..0cf7f9eed9a 100644 --- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java +++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java @@ -64,7 +64,9 @@ public class ReindexingMaintainer extends AbstractComponent { DocumentTypeManager manager = new DocumentTypeManager(documentmanagerConfig); this.reindexer = new Reindexer(parseCluster(reindexingConfig.clusterName(), clusterListConfig, allClustersBucketSpacesConfig, manager), parseReady(reindexingConfig, manager), - new ReindexingCurator(Curator.create(zookeepersConfig.zookeeperserverlist()), manager), + new ReindexingCurator(Curator.create(zookeepersConfig.zookeeperserverlist()), + reindexingConfig.clusterName(), + manager), access, clock); this.executor = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("reindexer-")); diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java index 7120c2e30e9..20393cba958 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java @@ -55,7 +55,7 @@ class ReindexerTest { @BeforeEach void setUp() { - database = new ReindexingCurator(new MockCurator(), manager, Duration.ofMillis(1)); + database = new ReindexingCurator(new MockCurator(), "cluster", manager, Duration.ofMillis(1)); access = new LocalDocumentAccess(new DocumentAccessParams().setDocumentmanagerConfig(musicConfig)); } diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java index 0501ff474ca..c5a58dcae68 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java @@ -25,7 +25,7 @@ class ReindexingCuratorTest { DocumentTypeManager manager = new DocumentTypeManager(musicConfig); DocumentType music = manager.getDocumentType("music"); MockCurator mockCurator = new MockCurator(); - ReindexingCurator curator = new ReindexingCurator(mockCurator, manager); + ReindexingCurator curator = new ReindexingCurator(mockCurator, "cluster", manager); assertEquals(Reindexing.empty(), curator.readReindexing()); @@ -42,7 +42,7 @@ class ReindexingCuratorTest { assertEquals(reindexing, curator.readReindexing()); // Unknown document types are forgotten. - assertEquals(Reindexing.empty(), new ReindexingCurator(mockCurator, new DocumentTypeManager(emptyConfig)).readReindexing()); + assertEquals(Reindexing.empty(), new ReindexingCurator(mockCurator, "cluster", new DocumentTypeManager(emptyConfig)).readReindexing()); } } -- cgit v1.2.3