summaryrefslogtreecommitdiffstats
path: root/clustercontroller-reindexer
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-11-09 11:55:22 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-11-09 11:55:22 +0100
commitc662ac1850acc7f6d1dc61ef30592908f1d510c0 (patch)
tree9a347a55bd25257c7b56dc783d1a8ea45442b7fa /clustercontroller-reindexer
parent61f35d882805926489f59c0ce3402fbd57b0ea11 (diff)
Add cluster name to reindexing status root
Diffstat (limited to 'clustercontroller-reindexer')
-rw-r--r--clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java23
-rw-r--r--clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java4
-rw-r--r--clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java2
-rw-r--r--clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java4
4 files changed, 18 insertions, 15 deletions
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());
}
}