diff options
author | Harald Musum <musum@yahooinc.com> | 2023-03-22 11:23:41 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-03-22 11:23:41 +0100 |
commit | a7d964aa8a658acd99fbf3a4d99bf86d3d33b03d (patch) | |
tree | f31ec9718baaf9e93d30d22945e22f25267ffc81 /zkfacade | |
parent | 0c57ce1f051b0cec06eee903ea14efd81340b682 (diff) |
Specify barrier wait for all timeout in callers, simplify
Diffstat (limited to 'zkfacade')
4 files changed, 12 insertions, 19 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 9a7dd469fa1..2781e81cd7c 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java @@ -173,12 +173,12 @@ public class Curator extends AbstractComponent implements AutoCloseable { }); } - public CompletionWaiter getCompletionWaiter(Path waiterPath, String id) { - return CuratorCompletionWaiter.create(this, waiterPath, id); + public CompletionWaiter getCompletionWaiter(Path waiterPath, String id, Duration waitForAll) { + return CuratorCompletionWaiter.create(this, waiterPath, id, waitForAll); } - public CompletionWaiter createCompletionWaiter(Path parentPath, String waiterNode, String id) { - return CuratorCompletionWaiter.createAndInitialize(this, parentPath, waiterNode, id); + public CompletionWaiter createCompletionWaiter(Path parentPath, String waiterNode, String id, Duration waitForAll) { + return CuratorCompletionWaiter.createAndInitialize(this, parentPath, waiterNode, 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 8df37d1f6ce..5a3d6668231 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/CuratorCompletionWaiter.java @@ -21,7 +21,6 @@ import java.util.logging.Level; class CuratorCompletionWaiter implements Curator.CompletionWaiter { private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(CuratorCompletionWaiter.class.getName()); - private static final Duration waitForAllDefault = Duration.ofSeconds(1); // Make this configurable? private final Curator curator; private final String barrierPath; @@ -121,18 +120,10 @@ class CuratorCompletionWaiter implements Curator.CompletionWaiter { return "'" + barrierPath + "', " + barrierMemberCount() + " members"; } - public static Curator.CompletionWaiter create(Curator curator, Path barrierPath, String id) { - return create(curator, barrierPath, id, waitForAllDefault); - } - public static Curator.CompletionWaiter create(Curator curator, Path barrierPath, String id, Duration waitForAll) { return new CuratorCompletionWaiter(curator, barrierPath.getAbsolute(), id, Clock.systemUTC(), waitForAll); } - public static Curator.CompletionWaiter createAndInitialize(Curator curator, Path parentPath, String waiterNode, String id) { - return createAndInitialize(curator, parentPath, waiterNode, id, waitForAllDefault); - } - public static Curator.CompletionWaiter createAndInitialize(Curator curator, Path parentPath, String waiterNode, String id, Duration waitForAll) { Path waiterPath = parentPath.append(waiterNode); 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 5ebd33801ed..e578746d348 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 @@ -6,7 +6,7 @@ import com.yahoo.path.Path; import com.yahoo.vespa.curator.Curator; import org.apache.curator.framework.recipes.atomic.DistributedAtomicLong; import org.apache.curator.framework.recipes.locks.InterProcessLock; - +import java.time.Duration; import java.util.Optional; import java.util.concurrent.ExecutorService; @@ -82,12 +82,12 @@ public class MockCurator extends Curator { } @Override - public CompletionWaiter getCompletionWaiter(Path parentPath, String id) { + public CompletionWaiter getCompletionWaiter(Path parentPath, String id, Duration waitForAll) { return mockFramework().createCompletionWaiter(); } @Override - public CompletionWaiter createCompletionWaiter(Path parentPath, String waiterNode, String id) { + public CompletionWaiter createCompletionWaiter(Path parentPath, String waiterNode, 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 8b635d2efdf..dbdb14b9214 100644 --- a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java +++ b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorCompletionWaiterTest.java @@ -14,11 +14,13 @@ import static org.junit.Assert.fail; */ public class CuratorCompletionWaiterTest { + private static final Duration waitForAll = Duration.ofSeconds(1); + @Test public void testCompletionWaiter() throws InterruptedException { Curator curator = new MockCurator(); - Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot(), "foo", "foo"); - Curator.CompletionWaiter notifier = CuratorCompletionWaiter.create(curator, Path.fromString("/foo"), "bar"); + Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot(), "foo", "foo", waitForAll); + Curator.CompletionWaiter notifier = CuratorCompletionWaiter.create(curator, Path.fromString("/foo"), "bar", waitForAll); Thread t1 = new Thread(() -> { try { waiter.awaitCompletion(Duration.ofSeconds(120)); @@ -34,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"); + Curator.CompletionWaiter waiter = CuratorCompletionWaiter.createAndInitialize(curator, Path.createRoot(), "foo", "foo", waitForAll); waiter.awaitCompletion(Duration.ofMillis(100)); } } |