You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2021/03/17 21:22:37 UTC
[geode-benchmarks] 01/03: Adding redis startup timeout
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 <da...@vmware.com>
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();