summaryrefslogtreecommitdiffstats
path: root/zkfacade
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-09-18 09:06:06 +0200
committerHarald Musum <musum@yahooinc.com>2023-09-18 09:06:06 +0200
commit51d97f62b16b5af66943633ef0880d9b2d314f95 (patch)
tree5451ec70aeef94d2f89870238c6580e709e34ab4 /zkfacade
parent4c498c4d0485565631cd6d30473dcfb73c73d211 (diff)
Minor refactoring of CuratorCompletionWaiter, no functional changes
Diffstat (limited to 'zkfacade')
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java4
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java21
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/curator/mock/MockCurator.java2
-rw-r--r--zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java4
4 files changed, 9 insertions, 22 deletions
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
index 2781e81cd7c..80646dc5607 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
@@ -177,8 +177,8 @@ public class Curator extends AbstractComponent implements AutoCloseable {
return CuratorCompletionWaiter.create(this, waiterPath, id, waitForAll);
}
- public CompletionWaiter createCompletionWaiter(Path parentPath, String waiterNode, String id, Duration waitForAll) {
- return CuratorCompletionWaiter.createAndInitialize(this, parentPath, waiterNode, id, waitForAll);
+ public CompletionWaiter createCompletionWaiter(Path waiterPath, String id, Duration waitForAll) {
+ return CuratorCompletionWaiter.createAndInitialize(this, waiterPath, id, waitForAll);
}
/** Creates a listenable cache which keeps in sync with changes to all the immediate children of a path */
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java
index 5a3d6668231..420b049cc50 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java
@@ -6,7 +6,6 @@ import com.yahoo.path.Path;
import java.time.Clock;
import java.time.Duration;
import java.time.Instant;
-import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
@@ -60,10 +59,9 @@ class CuratorCompletionWaiter implements Curator.CompletionWaiter {
Instant endTime = startTime.plus(timeout);
Instant gotQuorumTime = Instant.EPOCH;
- List<String> respondents = new ArrayList<>();
+ List<String> respondents;
do {
- respondents.clear();
- respondents.addAll(curator.framework().getChildren().forPath(barrierPath));
+ respondents = (curator.framework().getChildren().forPath(barrierPath));
if (log.isLoggable(Level.FINER)) {
log.log(Level.FINER, respondents.size() + "/" + curator.zooKeeperEnsembleCount() + " responded: " +
respondents + ", all participants: " + curator.zooKeeperEnsembleConnectionSpec());
@@ -105,16 +103,12 @@ class CuratorCompletionWaiter implements Curator.CompletionWaiter {
@Override
public void notifyCompletion() {
try {
- notifyInternal();
+ curator.framework().create().forPath(myId);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
- private void notifyInternal() throws Exception {
- curator.framework().create().forPath(myId);
- }
-
@Override
public String toString() {
return "'" + barrierPath + "', " + barrierMemberCount() + " members";
@@ -124,17 +118,10 @@ class CuratorCompletionWaiter implements Curator.CompletionWaiter {
return new CuratorCompletionWaiter(curator, barrierPath.getAbsolute(), id, Clock.systemUTC(), waitForAll);
}
- public static Curator.CompletionWaiter createAndInitialize(Curator curator, Path parentPath, String waiterNode, String id, Duration waitForAll) {
- Path waiterPath = parentPath.append(waiterNode);
-
- String debugMessage = log.isLoggable(Level.FINE) ? "Recreating ZK path " + waiterPath : null;
- if (debugMessage != null) log.fine(debugMessage);
-
+ public static Curator.CompletionWaiter createAndInitialize(Curator curator, Path waiterPath, String id, Duration waitForAll) {
curator.delete(waiterPath);
curator.createAtomically(waiterPath);
- if (debugMessage != null) log.fine(debugMessage + ": Done");
-
return new CuratorCompletionWaiter(curator, waiterPath.getAbsolute(), id, Clock.systemUTC(), waitForAll);
}
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/mock/MockCurator.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/mock/MockCurator.java
index e578746d348..592b9fc2a05 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/curator/mock/MockCurator.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/mock/MockCurator.java
@@ -87,7 +87,7 @@ public class MockCurator extends Curator {
}
@Override
- public CompletionWaiter createCompletionWaiter(Path parentPath, String waiterNode, String id, Duration waitForAll) {
+ public CompletionWaiter createCompletionWaiter(Path waiterPath, String id, Duration waitForAll) {
return mockFramework().createCompletionWaiter();
}
diff --git a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java
index dbdb14b9214..17ec7fb65e9 100644
--- a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java
+++ b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java
@@ -19,7 +19,7 @@ public class CuratorCompletionWaiterTest {
@Test
public void testCompletionWaiter() throws InterruptedException {
Curator curator = new MockCurator();
- Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot(), "foo", "foo", waitForAll);
+ Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot().append("foo"), "foo", waitForAll);
Curator.CompletionWaiter notifier = CuratorCompletionWaiter.create(curator, Path.fromString("/foo"), "bar", waitForAll);
Thread t1 = new Thread(() -> {
try {
@@ -36,7 +36,7 @@ public class CuratorCompletionWaiterTest {
@Test(expected = CompletionTimeoutException.class)
public void testCompletionWaiterFailure() {
Curator curator = new MockCurator();
- Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot(), "foo", "foo", waitForAll);
+ Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot().append("foo"), "foo", waitForAll);
waiter.awaitCompletion(Duration.ofMillis(100));
}
}