This is an automated email from the ASF dual-hosted git repository. upthewaterspout pushed a commit to branch feature/redis-performance-testing in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git
commit ee767a1cf5723aa73f5fb8199852c9da2ba37930 Author: Dan Smith <[email protected]> AuthorDate: Mon Mar 15 15:42:12 2021 -0700 Adding redis startup timeout --- .../org/apache/geode/benchmark/tasks/redis/JedisClientManager.java | 7 ++++++- .../apache/geode/benchmark/tasks/redis/LettuceClientManager.java | 4 ++++ .../org/apache/geode/benchmark/tasks/redis/RedisClientManager.java | 5 ++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/JedisClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/JedisClientManager.java index 9008816..713d987 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/JedisClientManager.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/JedisClientManager.java @@ -72,7 +72,7 @@ public final class JedisClientManager implements RedisClientManager { }; @Override - public void connect(final Collection<InetSocketAddress> servers) { + public void connect(final Collection<InetSocketAddress> servers) throws InterruptedException { logger.info("Connect RedisClient on thread {}.", currentThread()); final Set<HostAndPort> nodes = servers.stream() @@ -84,6 +84,7 @@ public final class JedisClientManager implements RedisClientManager { poolConfig.setLifo(false); final JedisCluster jedisCluster = new JedisCluster(nodes, Integer.MAX_VALUE, poolConfig); + long start = System.nanoTime(); while (true) { try (final Jedis jedis = jedisCluster.getConnectionFromSlot(0)) { logger.info("Waiting for cluster to come up."); @@ -93,6 +94,10 @@ public final class JedisClientManager implements RedisClientManager { } logger.debug(clusterInfo); } catch (Exception e) { + if(System.nanoTime() - start > CONNECT_TIMEOUT.toNanos()) { + throw e; + } + Thread.sleep(50); logger.info("Failed connecting.", e); } } diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/LettuceClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/LettuceClientManager.java index 80040c0..df9b160 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/LettuceClientManager.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/LettuceClientManager.java @@ -82,6 +82,7 @@ public final class LettuceClientManager implements RedisClientManager { final RedisClusterClient redisClusterClient = RedisClusterClient.create(nodes); + long start = System.nanoTime(); while (true) { try (final StatefulRedisClusterConnection<String, String> connection = redisClusterClient.connect()) { @@ -92,6 +93,9 @@ public final class LettuceClientManager implements RedisClientManager { } logger.debug(clusterInfo); } catch (Exception e) { + if(System.nanoTime() - start > CONNECT_TIMEOUT.toNanos()) { + throw e; + } logger.info("Failed connecting.", e); } } diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/RedisClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/RedisClientManager.java index d9d0e78..91a6f21 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/RedisClientManager.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/redis/RedisClientManager.java @@ -17,10 +17,13 @@ package org.apache.geode.benchmark.tasks.redis; import java.io.Serializable; import java.net.InetSocketAddress; +import java.time.Duration; import java.util.Collection; public interface RedisClientManager extends Serializable { - void connect(final Collection<InetSocketAddress> servers); + Duration CONNECT_TIMEOUT = Duration.ofMinutes(1); + + void connect(final Collection<InetSocketAddress> servers) throws InterruptedException; void close();
