GEODE-10278: Remove the geode-for-redis benchmarks
This module is being removed from the geode repository, so we need to remove
the corresponding benchmarks as well.
diff --git a/README.md b/README.md
index 9b91583..fe84d8e 100644
--- a/README.md
+++ b/README.md
@@ -94,15 +94,6 @@
| withRouter | Use router with SNI proxy topology. |
| withRouterImage | Provide an alternative Docker image coordinate for router. |
-##### Redis Benchmarks
-These options only apply to Redis benchmarks.
-
-| Option | Description |
-| --------------------- | ----------- |
-| withRedisClient | Redis client to use. May be 'jedis' (default) or 'lettuce'. |
-| withRedisCluster | Redis cluster implementation. May be 'geode' (default), 'redis', 'manual'. |
-| withRedisServers | A semicolon delimited list of Redis host:port pairs for manual cluster mode. |
-
##### Debugging
These options should not be used when measuring benchmarks.
@@ -233,42 +224,3 @@
```console
./run_tests.sh -t anytagname -- -Pbenchmark.withRouter --tests=PartitionedGetBenchmark
```
-
-## Redis Benchmarking
-
-You can run benchmarks utilizing the Redis protocol with various clients and backends. All Redis
-benchmarks take the pattern `Redis*Benchmark`. They expect 3 shards with 1 replica per shard, which
-when combined with 1 Geode locator and the benchmarking client needs a total of 8 hosts
-(`./launch_cluster ... -c 8`).
-
-The `withRedisClient` property accepts:
-* `Jedis` for using the [Jedis](https://github.com/redis/jedis) library (default).
-* `Lettuce` for using the [Lettuce](https://lettuce.io) library.
-
-The `withRedisCluster` property accepts:
-* `Geode` for using the [Geode](https://geode.apache.org) server backend (default). Builds a Geode
- cluster utilizing 7 hosts, 1 locator and 6 servers.
-* `Redis` for using the [Redis](https://redis.io) server backend. Builds a Redis cluster utilizing
- 6 hosts and the [Bitnami Redis image](https://hub.docker.com/r/bitnami/redis/).
-* `Manual` for using a manually configured Redis server backend, like [Elasticache](https://aws.amazon.com/elasticache/).
- Use `withRedisServers` to specify the address(es) to the Redis server endpoints.
-
-Examples:
-
-* Runs the `RedisGetBenchmark` against a Geode cluster using the Jedis client.
- ```console
- ./run_tests.sh -t anytagname -- --tests=RedisGetBenchmark
- ```
-* Runs the `RedisGetBenchmark` against a Geode cluster using the Lettuce client.
- ```console
- ./run_tests.sh -t anytagname -- -Pbenchmark.withRedisClient=lettuce --tests=RedisGetBenchmark
- ```
-* Runs the `RedisGetBenchmark` against a Redis cluster using the Jedis client.
- ```console
- ./run_tests.sh -t anytagname -- -Pbenchmark.withRedisCluster=redis --tests=RedisGetBenchmark
- ```
-* Runs the `RedisGetBenchmark` against an Elasticache cluster using the Jedis client.
- ```console
- ./run_tests.sh -t anytagname -- -Pbenchmark.withRedisCluster=manual -Pbenchmark.withRedisServers=my-cluster...clustercfg.usw2.cache.amazonaws.com:6379 --tests=RedisGetBenchmark
- ```
-
\ No newline at end of file
diff --git a/geode-benchmarks/build.gradle b/geode-benchmarks/build.gradle
index 5aed353..0887e6b 100644
--- a/geode-benchmarks/build.gradle
+++ b/geode-benchmarks/build.gradle
@@ -59,9 +59,7 @@
geodeVersion = configurations.geodeVersionResolver.resolvedConfiguration.resolvedArtifacts.find {it.name == 'geode-core'}.moduleVersion.id.version
logger.info("Building with Geode ${geodeVersion}.")
- implementation platform("org.apache.geode:geode-all-bom:${geodeVersion}") {
- exclude group: 'redis.clients'
- }
+ implementation platform("org.apache.geode:geode-all-bom:${geodeVersion}")
implementation(project(':harness'))
@@ -78,17 +76,6 @@
runtimeOnly(group: 'org.apache.logging.log4j', name: 'log4j-core')
}
- implementation(group: 'redis.clients', name: 'jedis', version: project.'jedis.version')
- implementation(group: 'io.lettuce', name: 'lettuce-core', version: project.'lettuce.version') {
- exclude group: 'io.netty'
- }
- implementation(group: 'io.vavr', name: 'vavr', version: project.'vavr.version')
-
-
- if (VersionNumber.parse(geodeVersion) >= VersionNumber.parse("1.15.0.+")) {
- runtimeOnly(group: 'org.apache.geode', name: 'geode-for-redis')
- }
-
// Required for missing dependency on geode-core.
runtimeOnly(group: 'org.eclipse.jetty', name: 'jetty-webapp')
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/parameters/GeodeParameters.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/parameters/GeodeParameters.java
deleted file mode 100644
index 74d152f..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/parameters/GeodeParameters.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.parameters;
-
-import static java.lang.Integer.getInteger;
-import static java.lang.String.format;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_BUCKETS;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_REPLICAS;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.perftest.TestConfig;
-
-public class GeodeParameters {
- private static final Logger logger = LoggerFactory.getLogger(GeodeParameters.class);
-
- public static void configure(final TestConfig testConfig) {
- logger.info("Configuring Geode APIs compatible with Redis parameters.");
-
- testConfig.jvmArgs(SERVER.name(), "-Denable-unsupported-commands=true",
- format("-Dredis.replicas=%d", getInteger(WITH_REPLICAS, 1)),
- format("-Dredis.region.buckets=%d", getInteger(WITH_BUCKETS, 128)),
- format("-Djava.lang.Integer.IntegerCache.high=%d", getInteger(WITH_BUCKETS, 128)));
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/parameters/NettyParameters.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/parameters/NettyParameters.java
deleted file mode 100644
index 060d1fe..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/parameters/NettyParameters.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.parameters;
-
-import static java.lang.Integer.getInteger;
-import static java.lang.String.format;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.perftest.TestConfig;
-
-public class NettyParameters {
- private static final Logger logger = LoggerFactory.getLogger(NettyParameters.class);
- public static final String WITH_NETTY_THREADS = "benchmark.withNettyThreads";
-
- public static void configure(final TestConfig testConfig) {
- logger.info("Configuring Netty parameters.");
-
- final Integer withNettyThreads = getInteger(WITH_NETTY_THREADS, null);
- if (null != withNettyThreads) {
- testConfig.jvmArgs(SERVER.name(), format("-Dio.netty.eventLoopThreads=%d", withNettyThreads));
- }
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/AbstractPrePopulate.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/AbstractPrePopulate.java
deleted file mode 100644
index 9b09457..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/AbstractPrePopulate.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.util.stream.Collectors.toList;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.benchmark.LongRange;
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public abstract class AbstractPrePopulate implements Task {
- private static final Logger logger = LoggerFactory.getLogger(AbstractPrePopulate.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRangeToPrepopulate;
-
- public AbstractPrePopulate(
- final RedisClientManager redisClientManager,
- final LongRange keyRangeToPrepopulate) {
- this.redisClientManager = redisClientManager;
- this.keyRangeToPrepopulate = keyRangeToPrepopulate;
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- final List<Integer> hostsIDsForRole =
- context.getHostsIDsForRole(CLIENT.name()).stream().sorted().collect(toList());
- final int self = context.getJvmID();
- final int position = hostsIDsForRole.indexOf(self);
-
- final LongRange keyRange = keyRangeToPrepopulate.sliceFor(hostsIDsForRole.size(), position);
-
- final int numThreads = Runtime.getRuntime().availableProcessors();
- final ExecutorService threadPool = Executors.newFixedThreadPool(numThreads);
- final List<CompletableFuture<Void>> futures = new ArrayList<>();
-
- for (final LongRange slice : keyRange.slice(numThreads)) {
- futures.add(CompletableFuture.runAsync(() -> {
- logger.info("Prepopulating slice: {} starting...", slice);
- final RedisClient redisClient = redisClientManager.get();
- slice.forEach(i -> {
- prepopulate(redisClient, i);
- });
- }, threadPool));
- }
-
- futures.forEach(CompletableFuture::join);
-
- threadPool.shutdownNow();
- threadPool.awaitTermination(5, TimeUnit.MINUTES);
- }
-
- protected abstract void prepopulate(final RedisClient redisClient, final long key);
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/CreateRedisCluster.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/CreateRedisCluster.java
deleted file mode 100644
index 1181dcd..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/CreateRedisCluster.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.String.valueOf;
-import static java.util.Arrays.asList;
-import static java.util.stream.Collectors.toList;
-import static org.apache.geode.benchmark.tasks.ProcessControl.retryUntilZeroExit;
-import static org.apache.geode.benchmark.topology.Ports.REDIS_PORT;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import java.net.InetAddress;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class CreateRedisCluster implements Task {
-
- private static final Logger logger = LoggerFactory.getLogger(CreateRedisCluster.class);
-
- final int replicas;
-
- public CreateRedisCluster(final int replicas) {
- this.replicas = replicas;
- }
-
- public int getReplicas() {
- return replicas;
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- final List<Integer> hostsIDsForRole =
- context.getHostsIDsForRole(CLIENT.name()).stream().sorted().collect(toList());
- final int self = context.getJvmID();
- final int position = hostsIDsForRole.indexOf(self);
-
- if (0 != position) {
- return;
- }
-
- final Set<InetAddress> servers = context.getHostsForRole(SERVER.name());
-
- final List<String> redisNodes =
- servers.stream().map(i -> i.getHostAddress() + ":" + REDIS_PORT)
- .collect(Collectors.toList());
-
- final ProcessBuilder processBuilder =
- new ProcessBuilder().command("docker", "run", "--rm",
- "--network", "host",
- "bitnami/redis-cluster:latest",
- "redis-cli",
- "--cluster", "create");
-
- processBuilder.command().addAll(redisNodes);
-
- processBuilder.command().addAll(asList(
- "--cluster-replicas", valueOf(replicas),
- "--cluster-yes"));
-
- logger.info("Creating redis cluster. {}", processBuilder.command());
-
- retryUntilZeroExit(processBuilder);
-
- Thread.sleep(10_000);
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/FlushDbTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/FlushDbTask.java
deleted file mode 100644
index da357fa..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/FlushDbTask.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-/**
- * Flushes the contents of the Redis database.
- */
-public class FlushDbTask implements Task {
-
- private final RedisClientManager redisClientManager;
-
- public FlushDbTask(final RedisClientManager redisClientManager) {
- this.redisClientManager = redisClientManager;
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- redisClientManager.get().flushdb();
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/GetRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/GetRedisTask.java
deleted file mode 100644
index d0832dd..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/GetRedisTask.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-
-public class GetRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(GetRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
- private final boolean validate;
-
- private LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public GetRedisTask(final RedisClientManager redisClientManager, final LongRange keyRange,
- final boolean validate) {
- logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- this.validate = validate;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final String key = keyCache.valueOf(keyRange.random());
- final String value = redisClient.get(key);
- if (validate) {
- assertThat(value).isEqualTo(key);
- }
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/HgetRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/HgetRedisTask.java
deleted file mode 100644
index 544b101..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/HgetRedisTask.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class HgetRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(HgetRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
- private final boolean validate;
-
- private transient LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public HgetRedisTask(final RedisClientManager redisClientManager, final LongRange keyRange,
- final boolean validate) {
- logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- this.validate = validate;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final long k = keyRange.random();
-
- final String key = keyCache.valueOf(toKey(k));
- final String field = keyCache.valueOf(toPart(k));
- final String value = redisClient.hget(key, field);
- if (validate) {
- assertThat(value).isEqualTo(field);
- }
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/HsetRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/HsetRedisTask.java
deleted file mode 100644
index 570bf8e..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/HsetRedisTask.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class HsetRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(HsetRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
-
- private transient LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public HsetRedisTask(final RedisClientManager redisClientManager, final LongRange keyRange) {
- logger.info("Initialized: keyRange={}", keyRange);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final long k = keyRange.random();
- final String key = keyCache.valueOf(toKey(k));
- final String field = keyCache.valueOf(toPart(k));
- final String value = keyCache.valueOf(k);
- redisClient.hset(key, field, value);
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRedisServersAttribute.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRedisServersAttribute.java
deleted file mode 100644
index d3c72d2..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRedisServersAttribute.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-import static org.apache.geode.benchmark.topology.Ports.REDIS_PORT;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import java.net.InetSocketAddress;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.benchmark.redis.tests.RedisBenchmark;
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class InitRedisServersAttribute implements Task {
- private static final Logger logger = LoggerFactory.getLogger(InitRedisServersAttribute.class);
-
- final Collection<InetSocketAddress> servers;
-
- public InitRedisServersAttribute() {
- this(null);
- }
-
- public InitRedisServersAttribute(final Collection<InetSocketAddress> servers) {
- this.servers = servers;
- }
-
- public Collection<InetSocketAddress> getServers() {
- return servers;
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- if (null == servers) {
- final List<InetSocketAddress> servers =
- context.getHostsForRole(SERVER.name()).stream().map(i -> InetSocketAddress
- .createUnresolved(i.getHostAddress(), REDIS_PORT)).collect(Collectors.toList());
- logger.info("Setting servers from roles: {}", servers);
- context.setAttribute(RedisBenchmark.REDIS_SERVERS_ATTRIBUTE, servers);
- } else {
- logger.info("Setting servers from fixed collection: {}", servers);
- context.setAttribute(RedisBenchmark.REDIS_SERVERS_ATTRIBUTE, servers);
- }
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java
deleted file mode 100644
index 63cfaf2..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/InitRegion.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-import static org.apache.geode.benchmark.tasks.StartServer.SERVER_CACHE;
-
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.partition.PartitionRegionHelper;
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class InitRegion implements Task {
-
- public static final String REDIS_DATA_REGION = "GEODE_FOR_REDIS";
-
- @Override
- public void run(final TestContext context) throws Exception {
- final Cache cache = (Cache) context.getAttribute(SERVER_CACHE);
- final Region<?, ?> region = cache.getRegion(REDIS_DATA_REGION);
- PartitionRegionHelper.assignBucketsToPartitions(region);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/JedisClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/JedisClientManager.java
deleted file mode 100644
index 3ea6a5c..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/JedisClientManager.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.Thread.currentThread;
-
-import java.net.InetSocketAddress;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import io.vavr.Function3;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import redis.clients.jedis.ConnectionPoolConfig;
-import redis.clients.jedis.HostAndPort;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisCluster;
-import redis.clients.jedis.JedisPubSub;
-
-import org.apache.geode.benchmark.redis.tests.PubSubBenchmarkConfiguration;
-
-public final class JedisClientManager implements RedisClientManager {
- private static final Logger logger = LoggerFactory.getLogger(RedisClientManager.class);
-
- private static JedisCluster jedisCluster;
-
- private static final RedisClient redisClient = new RedisClient() {
- @Override
- public String get(final String key) {
- return jedisCluster.get(key);
- }
-
- @Override
- public String set(final String key, final String value) {
- return jedisCluster.set(key, value);
- }
-
- @Override
- public String hget(final String key, final String field) {
- return jedisCluster.hget(key, field);
- }
-
- @Override
- public boolean hset(final String key, final String field, final String value) {
- return 1 == jedisCluster.hset(key, field, value);
- }
-
- @Override
- public long zadd(final String key, final double score, final String value) {
- return jedisCluster.zadd(key, score, value);
- }
-
- @Override
- public long zrem(final String key, final String value) {
- return jedisCluster.zrem(key, value);
- }
-
- @Override
- public List<String> zrange(final String key, final long start, final long stop) {
- return jedisCluster.zrange(key, start, stop);
- }
-
- @Override
- public List<String> zrangeByScore(final String key, final long start, final long stop) {
- return jedisCluster.zrangeByScore(key, start, stop);
- }
-
- @Override
- public SubscriptionListener createSubscriptionListener(
- final PubSubBenchmarkConfiguration pubSubConfig,
- final Function3<String, String, Unsubscriber, Void> channelMessageConsumer) {
- return new JedisSubscriptionListener(new JedisPubSub() {
- @Override
- public void onPMessage(final String pattern, final String channel, final String message) {
- super.onPMessage(pattern, channel, message);
- final Unsubscriber unsubscriber =
- channels -> punsubscribe(channels.toArray(new String[] {}));
- channelMessageConsumer.apply(channel, message, unsubscriber);
- }
-
- @Override
- public void onMessage(final String channel, final String message) {
- super.onMessage(channel, message);
- final Unsubscriber unsubscriber =
- channels -> unsubscribe(channels.toArray(new String[] {}));
- channelMessageConsumer.apply(channel, message, unsubscriber);
- }
- });
- }
-
- @Override
- public void subscribe(final SubscriptionListener listener, final String... channels) {
- jedisCluster.subscribe(((JedisSubscriptionListener) listener).getJedisPubSub(), channels);
- }
-
- @Override
- public void psubscribe(final SubscriptionListener listener, final String... channelPatterns) {
- jedisCluster.psubscribe(((JedisSubscriptionListener) listener).getJedisPubSub(),
- channelPatterns);
- }
-
- @Override
- public void publish(final String channel, final String message) {
- jedisCluster.publish(channel, message);
- }
-
- @Override
- public void flushdb() {
- jedisCluster.getClusterNodes()
- .forEach((nodeKey, nodePool) -> new Jedis(nodePool.getResource()).flushDB());
- }
- };
-
- @Override
- public void connect(final Collection<InetSocketAddress> servers) {
- logger.info("Connect RedisClient on thread {}.", currentThread());
-
- final Set<HostAndPort> nodes = servers.stream()
- .map(i -> new HostAndPort(i.getHostString(), i.getPort())).collect(Collectors.toSet());
-
- final ConnectionPoolConfig poolConfig = new ConnectionPoolConfig();
- poolConfig.setMaxTotal(-1);
- poolConfig.setMaxIdle(-1);
- poolConfig.setLifo(false);
- final JedisCluster jedisCluster = new JedisCluster(nodes, Integer.MAX_VALUE, poolConfig);
-
- final long start = System.nanoTime();
- while (true) {
- try (final Jedis jedis = new Jedis(jedisCluster.getConnectionFromSlot(0))) {
- logger.info("Waiting for cluster to come up.");
- final String clusterInfo = jedis.clusterInfo();
- if (clusterInfo.contains("cluster_state:ok")) {
- break;
- }
- logger.debug(clusterInfo);
- } catch (final Exception e) {
- if (System.nanoTime() - start > CONNECT_TIMEOUT.toNanos()) {
- throw e;
- }
- try {
- Thread.sleep(50);
- } catch (final InterruptedException interruptedException) {
- throw new RuntimeException(e);
- }
- logger.info("Failed connecting.", e);
- }
- }
-
- JedisClientManager.jedisCluster = jedisCluster;
- }
-
- @Override
- public void close() {
- logger.info("Close RedisClient on thread {}.", currentThread());
-
- jedisCluster.close();
- }
-
- @Override
- public RedisClient get() {
- logger.info("Getting RedisClient on thread {}.", currentThread());
-
- return redisClient;
- }
-
- static class JedisSubscriptionListener implements RedisClient.SubscriptionListener {
- private final JedisPubSub jedisPubSub;
-
- public JedisSubscriptionListener(final JedisPubSub jedisPubSub) {
- this.jedisPubSub = jedisPubSub;
- }
-
- JedisPubSub getJedisPubSub() {
- return jedisPubSub;
- }
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LettuceClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LettuceClientManager.java
deleted file mode 100644
index 8520500..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LettuceClientManager.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.Thread.currentThread;
-
-import java.net.InetSocketAddress;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import io.lettuce.core.Range;
-import io.lettuce.core.ReadFrom;
-import io.lettuce.core.RedisURI;
-import io.lettuce.core.cluster.RedisClusterClient;
-import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;
-import io.lettuce.core.cluster.api.sync.RedisAdvancedClusterCommands;
-import io.vavr.Function3;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.benchmark.redis.tests.PubSubBenchmarkConfiguration;
-
-public final class LettuceClientManager implements RedisClientManager {
- private static final Logger logger = LoggerFactory.getLogger(LettuceClientManager.class);
-
- private static RedisClusterClient redisClusterClient;
-
- private static final ThreadLocal<RedisAdvancedClusterCommands<String, String>> redisAdvancedClusterCommands =
- ThreadLocal.withInitial(() -> {
- logger.info("Setup for thread {}", Thread.currentThread().getId());
-
- final StatefulRedisClusterConnection<String, String> redisClusterConnection =
- redisClusterClient.connect();
- redisClusterConnection.setReadFrom(ReadFrom.ANY);
- return redisClusterConnection.sync();
- });
-
- private static final RedisClient redisClient = new RedisClient() {
- @Override
- public String get(final String key) {
- return redisAdvancedClusterCommands.get().get(key);
- }
-
- @Override
- public String set(final String key, final String value) {
- return redisAdvancedClusterCommands.get().set(key, value);
- }
-
- @Override
- public String hget(final String key, final String field) {
- return redisAdvancedClusterCommands.get().hget(key, field);
- }
-
- @Override
- public boolean hset(final String key, final String field, final String value) {
- return redisAdvancedClusterCommands.get().hset(key, field, value);
- }
-
- @Override
- public long zadd(String key, double score, String value) {
- return redisAdvancedClusterCommands.get().zadd(key, score, value);
- }
-
- @Override
- public long zrem(String key, String value) {
- return redisAdvancedClusterCommands.get().zrem(key, value);
- }
-
- @Override
- public List<String> zrange(String key, long start, long stop) {
- return redisAdvancedClusterCommands.get().zrange(key, start, stop);
- }
-
- @Override
- public List<String> zrangeByScore(String key, long start, long stop) {
- return redisAdvancedClusterCommands.get().zrangebyscore(key, Range.create(start, stop));
- }
-
- @Override
- public SubscriptionListener createSubscriptionListener(
- final PubSubBenchmarkConfiguration pubSubConfig,
- final Function3<String, String, Unsubscriber, Void> channelMessageConsumer) {
- throw new UnsupportedOperationException("not a pubsub client");
- }
-
- @Override
- public void subscribe(final SubscriptionListener listener, final String... channels) {
- throw new UnsupportedOperationException("not a pubsub client");
- }
-
- @Override
- public void psubscribe(final SubscriptionListener listener, final String... channelPatterns) {
- throw new UnsupportedOperationException("not a pubsub client");
- }
-
- @Override
- public void publish(final String channel, final String message) {
- throw new UnsupportedOperationException("not a pubsub client");
- }
-
- @Override
- public void flushdb() {
- redisAdvancedClusterCommands.get().flushdb();
- }
- };
-
- @Override
- public void connect(final Collection<InetSocketAddress> servers) {
- logger.info("Connect RedisClient on thread {}.", currentThread());
-
- final List<RedisURI> nodes = servers.stream()
- .map(i -> RedisURI.create(i.getHostString(), i.getPort())).collect(Collectors.toList());
-
- final RedisClusterClient redisClusterClient = RedisClusterClient.create(nodes);
-
- long start = System.nanoTime();
- while (true) {
- try (final StatefulRedisClusterConnection<String, String> connection =
- redisClusterClient.connect()) {
- logger.info("Waiting for cluster to come up.");
- final String clusterInfo = connection.sync().clusterInfo();
- if (clusterInfo.contains("cluster_state:ok")) {
- break;
- }
- logger.debug(clusterInfo);
- } catch (Exception e) {
- if (System.nanoTime() - start > CONNECT_TIMEOUT.toNanos()) {
- throw e;
- }
- try {
- Thread.sleep(50);
- } catch (InterruptedException interruptedException) {
- throw new RuntimeException(e);
- }
- logger.info("Failed connecting.", e);
- }
- }
-
- redisClusterClient.refreshPartitions();
-
- LettuceClientManager.redisClusterClient = redisClusterClient;
- }
-
- @Override
- public void close() {
- logger.info("Close RedisClient on thread {}.", currentThread());
-
- redisClusterClient.shutdown();
- }
-
- @Override
- public RedisClient get() {
- logger.info("Getting RedisClient on thread {}.", currentThread());
-
- return redisClient;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LettucePubSubClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LettucePubSubClientManager.java
deleted file mode 100644
index a6c48f7..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LettucePubSubClientManager.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.Thread.currentThread;
-
-import java.net.InetSocketAddress;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import io.lettuce.core.Range;
-import io.lettuce.core.RedisURI;
-import io.lettuce.core.cluster.RedisClusterClient;
-import io.lettuce.core.cluster.pubsub.StatefulRedisClusterPubSubConnection;
-import io.lettuce.core.cluster.pubsub.api.sync.RedisClusterPubSubCommands;
-import io.lettuce.core.pubsub.RedisPubSubAdapter;
-import io.lettuce.core.pubsub.RedisPubSubListener;
-import io.lettuce.core.pubsub.StatefulRedisPubSubConnection;
-import io.vavr.Function3;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.benchmark.redis.tests.PubSubBenchmarkConfiguration;
-
-public final class LettucePubSubClientManager implements RedisClientManager {
- private static final Logger logger = LoggerFactory.getLogger(LettucePubSubClientManager.class);
-
- private static RedisClusterClient redisClusterClient;
-
- private static final ThreadLocal<RedisClusterPubSubCommands<String, String>> redisClusterCommands =
- ThreadLocal.withInitial(() -> {
- logger.info("Setup for thread {}", Thread.currentThread().getId());
-
- final StatefulRedisClusterPubSubConnection<String, String> redisClusterPubSubConnection =
- redisClusterClient.connectPubSub();
- return redisClusterPubSubConnection.sync();
- });
-
- private static final RedisClient redisClient = new RedisClient() {
- @Override
- public String get(final String key) {
- return LettucePubSubClientManager.redisClusterCommands.get().get(key);
- }
-
- @Override
- public String set(final String key, final String value) {
- return LettucePubSubClientManager.redisClusterCommands.get().set(key, value);
- }
-
- @Override
- public String hget(final String key, final String field) {
- return LettucePubSubClientManager.redisClusterCommands.get().hget(key, field);
- }
-
- @Override
- public boolean hset(final String key, final String field, final String value) {
- return LettucePubSubClientManager.redisClusterCommands.get().hset(key, field, value);
- }
-
- @Override
- public long zadd(String key, double score, String value) {
- return LettucePubSubClientManager.redisClusterCommands.get().zadd(key, score, value);
- }
-
- @Override
- public long zrem(String key, String value) {
- return LettucePubSubClientManager.redisClusterCommands.get().zrem(key, value);
- }
-
- @Override
- public List<String> zrange(String key, long start, long stop) {
- return LettucePubSubClientManager.redisClusterCommands.get().zrange(key, start, stop);
- }
-
- @Override
- public List<String> zrangeByScore(String key, long start, long stop) {
- return LettucePubSubClientManager.redisClusterCommands.get().zrangebyscore(key,
- Range.create(start, stop));
- }
-
- @Override
- public SubscriptionListener createSubscriptionListener(
- final PubSubBenchmarkConfiguration pubSubConfig,
- final Function3<String, String, Unsubscriber, Void> channelMessageConsumer) {
- return new LettuceSubscriptionListener(new RedisPubSubAdapter<String, String>() {
- @Override
- public void message(final String pattern, final String channel, final String message) {
- super.message(pattern, channel, message);
- final Unsubscriber unsubscriber =
- channels -> LettucePubSubClientManager.redisClusterCommands.get()
- .punsubscribe(channels.toArray(new String[] {}));
- channelMessageConsumer.apply(channel, message, unsubscriber);
- }
-
- @Override
- public void message(final String channel, final String message) {
- super.message(channel, message);
- final Unsubscriber unsubscriber =
- channels -> LettucePubSubClientManager.redisClusterCommands.get()
- .unsubscribe(channels.toArray(new String[] {}));
- channelMessageConsumer.apply(channel, message, unsubscriber);
- }
- });
- }
-
- @Override
- public void subscribe(final SubscriptionListener listener, final String... channels) {
- final StatefulRedisPubSubConnection<String, String> connection =
- LettucePubSubClientManager.redisClusterCommands.get().getStatefulConnection();
-
- connection.addListener(((LettuceSubscriptionListener) listener).getListener());
- LettucePubSubClientManager.redisClusterCommands.get().subscribe(channels);
- }
-
- @Override
- public void psubscribe(final SubscriptionListener listener, final String... channels) {
- final StatefulRedisPubSubConnection<String, String> connection =
- LettucePubSubClientManager.redisClusterCommands.get().getStatefulConnection();
-
- connection.addListener(((LettuceSubscriptionListener) listener).getListener());
- LettucePubSubClientManager.redisClusterCommands.get().psubscribe(channels);
- }
-
- @Override
- public void publish(String channel, String message) {
- LettucePubSubClientManager.redisClusterCommands.get().publish(channel, message);
- }
-
- @Override
- public void flushdb() {
- redisClusterCommands.get().flushdb();
- }
- };
-
- @Override
- public void connect(final Collection<InetSocketAddress> servers) {
- logger.info("Connect RedisClient on thread {}.", currentThread());
-
- final List<RedisURI> nodes = servers.stream()
- .map(i -> RedisURI.create(i.getHostString(), i.getPort())).collect(Collectors.toList());
-
- final RedisClusterClient redisClusterClient = RedisClusterClient.create(nodes);
-
- long start = System.nanoTime();
- while (true) {
- try (final StatefulRedisClusterPubSubConnection<String, String> connection =
- redisClusterClient.connectPubSub()) {
- logger.info("Waiting for cluster to come up.");
- final String clusterInfo = connection.sync().clusterInfo();
- if (clusterInfo.contains("cluster_state:ok")) {
- break;
- }
- logger.debug(clusterInfo);
- } catch (Exception e) {
- if (System.nanoTime() - start > CONNECT_TIMEOUT.toNanos()) {
- throw e;
- }
- try {
- Thread.sleep(50);
- } catch (InterruptedException interruptedException) {
- throw new RuntimeException(e);
- }
- logger.info("Failed connecting.", e);
- }
- }
-
- redisClusterClient.refreshPartitions();
-
- LettucePubSubClientManager.redisClusterClient = redisClusterClient;
- }
-
- @Override
- public void close() {
- logger.info("Close RedisClient on thread {}.", currentThread());
-
- redisClusterClient.shutdown();
- }
-
- @Override
- public RedisClient get() {
- logger.info("Getting RedisClient on thread {}.", currentThread());
-
- return redisClient;
- }
-
- static class LettuceSubscriptionListener implements RedisClient.SubscriptionListener {
- private final RedisPubSubListener<String, String> listener;
-
- public LettuceSubscriptionListener(
- RedisPubSubListener<String, String> listener) {
- this.listener = listener;
- }
-
- RedisPubSubListener<String, String> getListener() {
- return listener;
- }
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LongStringCache.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LongStringCache.java
deleted file mode 100644
index aecc5c1..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/LongStringCache.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class LongStringCache {
- private final int offset;
- private final String[] cache;
-
- public LongStringCache(final LongRange longRange) {
- offset = (int) longRange.getMin();
- cache = new String[(int) (longRange.getMax() - offset)];
- longRange.forEach(i -> cache[(int) i] = String.valueOf(i));
- }
-
- public String valueOf(final long value) {
- return cache[(int) (value - offset)];
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedis.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedis.java
deleted file mode 100644
index 455b3d0..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedis.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.String.valueOf;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class PrePopulateRedis extends AbstractPrePopulate {
-
- public PrePopulateRedis(
- final RedisClientManager redisClientManager,
- final LongRange keyRangeToPrepopulate) {
- super(redisClientManager, keyRangeToPrepopulate);
- }
-
- @Override
- protected void prepopulate(final RedisClient redisClient, final long key) {
- final String keyString = valueOf(key);
- redisClient.set(keyString, keyString);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedisHash.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedisHash.java
deleted file mode 100644
index 63caa03..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedisHash.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.String.valueOf;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class PrePopulateRedisHash extends AbstractPrePopulate {
-
- public PrePopulateRedisHash(
- final RedisClientManager redisClientManager,
- final LongRange keyRangeToPrepopulate) {
- super(redisClientManager, keyRangeToPrepopulate);
- }
-
- @Override
- protected void prepopulate(final RedisClient redisClient, final long key) {
- final String value = valueOf(toPart(key));
- redisClient.hset(valueOf(toKey(key)), value, value);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedisSortedSet.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedisSortedSet.java
deleted file mode 100644
index 293ae92..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PrePopulateRedisSortedSet.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.lang.String.valueOf;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class PrePopulateRedisSortedSet extends AbstractPrePopulate {
-
- public PrePopulateRedisSortedSet(
- final RedisClientManager redisClientManager,
- final LongRange keyRangeToPrepopulate) {
- super(redisClientManager, keyRangeToPrepopulate);
- }
-
- @Override
- protected void prepopulate(final RedisClient redisClient, final long key) {
- final long score = toPart(key);
- final String value = valueOf(score);
- redisClient.zadd(valueOf(toKey(key)), score, value);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PublishRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PublishRedisTask.java
deleted file mode 100644
index f9b977f..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/PublishRedisTask.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.Serializable;
-import java.util.Map;
-import java.util.concurrent.CyclicBarrier;
-import java.util.concurrent.TimeUnit;
-
-import com.google.common.base.Strings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.redis.tests.PubSubBenchmarkConfiguration;
-
-public class PublishRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(PublishRedisTask.class);
- private final PubSubBenchmarkConfiguration pubSubConfig;
- private final RedisClientManager publisherClientManager;
-
- public PublishRedisTask(final PubSubBenchmarkConfiguration pubSubConfig,
- final RedisClientManager publisherClientManager) {
- this.pubSubConfig = pubSubConfig;
- this.publisherClientManager = publisherClientManager;
- logger.info("Initialized: PublishRedisTask");
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final CyclicBarrier barrier = pubSubConfig.getCyclicBarrier();
- final RedisClient redisClient = publisherClientManager.get();
-
- for (final String channel : pubSubConfig.getBenchmarkPublishChannels()) {
- for (int i = 0; i < pubSubConfig.getNumMessagesPerChannelOperation(); i++) {
- final String message = Strings.repeat(String.valueOf((char) ('A' + i)),
- pubSubConfig.getMessageLength());
- redisClient.publish(channel, message);
- }
- }
-
- // waits for all subscribers to receive all messages, then barrier is reset automatically
- // for the next test iteration; fails test if times out
- barrier.await(10, TimeUnit.SECONDS);
- return true;
- }
-
- @Override
- public void tearDown() throws Exception {
- super.tearDown();
- logger.info("PublishRedisTask: Sending END message");
- assertThat(pubSubConfig.getCyclicBarrier().getNumberWaiting()).isZero();
- assertThat(pubSubConfig.getCyclicBarrier().isBroken()).isFalse();
- publisherClientManager.get().publish(pubSubConfig.getControlChannel(),
- pubSubConfig.getEndMessage());
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisClient.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisClient.java
deleted file mode 100644
index 71a7c4d..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisClient.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import java.util.List;
-
-import io.vavr.Function3;
-
-import org.apache.geode.benchmark.redis.tests.PubSubBenchmarkConfiguration;
-
-public interface RedisClient {
- String get(String key);
-
- String set(String key, String value);
-
- String hget(String key, String field);
-
- boolean hset(String key, String field, String value);
-
- void flushdb();
-
- long zadd(String key, double score, String value);
-
- long zrem(String key, String value);
-
- List<String> zrange(String key, long start, long stop);
-
- List<String> zrangeByScore(String key, long start, long stop);
-
- /**
- * Create a subscription listener.
- *
- * @param channelMessageConsumer a function that accepts the channel, the message, and
- * a consumer that will unsubscribe the listener from the list of channels
- * passed in.
- * @return the subscription listener
- */
- SubscriptionListener createSubscriptionListener(PubSubBenchmarkConfiguration pubSubConfig,
- Function3<String, String, Unsubscriber, Void> channelMessageConsumer);
-
- void subscribe(SubscriptionListener control, String... channels);
-
- void psubscribe(SubscriptionListener control, String... channelPatterns);
-
- void publish(String channel, String message);
-
- interface SubscriptionListener {
- }
-
- @FunctionalInterface
- interface Unsubscriber {
- void unsubscribe(List<String> channels);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisClientManager.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisClientManager.java
deleted file mode 100644
index fd30f34..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisClientManager.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import java.io.Serializable;
-import java.net.InetSocketAddress;
-import java.time.Duration;
-import java.util.Collection;
-
-public interface RedisClientManager extends Serializable {
- Duration CONNECT_TIMEOUT = Duration.ofMinutes(1);
-
- void connect(final Collection<InetSocketAddress> servers) throws InterruptedException;
-
- void close();
-
- RedisClient get();
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisSplitKey.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisSplitKey.java
deleted file mode 100644
index b32525d..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/RedisSplitKey.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-/**
- * Split keyspace into a sublevel of keys.
- */
-public class RedisSplitKey {
-
- public static long NUM_PARTS_PER_KEY = 1000;
-
- public static long toKey(final long key) {
- return key / NUM_PARTS_PER_KEY;
- }
-
- public static long toPart(final long key) {
- return key % NUM_PARTS_PER_KEY;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/SetRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/SetRedisTask.java
deleted file mode 100644
index af12fc6..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/SetRedisTask.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class SetRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(SetRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
- private final boolean validate;
-
- private LongStringCache keyCache;
- private transient RedisClient redisClient;
-
-
- public SetRedisTask(final RedisClientManager redisClientManager, final LongRange keyRange,
- final boolean validate) {
- logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- this.validate = validate;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final String key = keyCache.valueOf(keyRange.random());
- final String response = redisClient.set(key, key);
- if (validate) {
- assertThat(response).isEqualTo("OK");
- }
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartGeodeServer.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartGeodeServer.java
deleted file mode 100644
index f379d02..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartGeodeServer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-import static java.lang.String.valueOf;
-
-import org.apache.geode.benchmark.tasks.StartServer;
-import org.apache.geode.cache.server.CacheServer;
-import org.apache.geode.perftest.TestContext;
-
-public class StartGeodeServer extends StartServer {
-
- private final int redisPort;
-
- public StartGeodeServer(final int locatorPort, final int serverPort, final int redisPort) {
- super(locatorPort, serverPort);
- this.redisPort = redisPort;
- }
-
- @Override
- public void run(TestContext context) throws Exception {
- try {
- System.setProperty("gemfire.geode-for-redis-port", valueOf(redisPort));
- System.setProperty("gemfire.geode-for-redis-enabled", valueOf(true));
- super.run(context);
- } finally {
- System.clearProperty("gemfire.geode-for-redis-port");
- System.clearProperty("gemfire.geode-for-redis-enabled");
- }
- }
-
- @Override
- protected CacheServer configureCacheServer(final CacheServer cacheServer,
- final TestContext context) {
- return null;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartRedisClient.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartRedisClient.java
deleted file mode 100644
index 147d1b7..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartRedisClient.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.apache.geode.benchmark.redis.tests.RedisBenchmark.REDIS_SERVERS_ATTRIBUTE;
-
-import java.net.InetSocketAddress;
-import java.util.Collection;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-/**
- * Task to create the client cache
- */
-public class StartRedisClient implements Task {
- private static final Logger logger = LoggerFactory.getLogger(StartRedisClient.class);
-
- private final RedisClientManager redisClientManager;
-
- public StartRedisClient(final RedisClientManager redisClientManager) {
- this.redisClientManager = redisClientManager;
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- @SuppressWarnings("unchecked")
- final Collection<InetSocketAddress> redisClusterAddresses =
- (Collection<InetSocketAddress>) context.getAttribute(REDIS_SERVERS_ATTRIBUTE);
- redisClientManager.connect(redisClusterAddresses);
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartRedisServer.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartRedisServer.java
deleted file mode 100644
index dcf3e2b..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StartRedisServer.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static java.net.InetAddress.getLocalHost;
-import static org.apache.geode.benchmark.tasks.ProcessControl.runAndExpectZeroExit;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import java.net.InetAddress;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class StartRedisServer implements Task {
-
- @Override
- public void run(final TestContext context) throws Exception {
- final Set<InetAddress> servers = context.getHostsForRole(SERVER.name());
-
- final String redisNodes =
- servers.stream().map(InetAddress::getHostAddress).collect(Collectors.joining(" "));
-
- final ProcessBuilder processBuilder =
- new ProcessBuilder().command("docker", "run", "-d", "--rm",
- "-e", "ALLOW_EMPTY_PASSWORD=yes",
- "-e", "REDIS_NODES=" + redisNodes,
- "-e", "REDIS_CLUSTER_DYNAMIC_IPS=no",
- "-e", "REDIS_CLUSTER_ANNOUNCE_IP=" + getLocalHost().getHostAddress(),
- "-e", "REDIS_AOF_ENABLED=no",
- "--name", "redis-cluster-node",
- "--network", "host",
- "bitnami/redis-cluster:latest");
-
- runAndExpectZeroExit(processBuilder);
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopPubSubRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopPubSubRedisTask.java
deleted file mode 100644
index 94caa7c..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopPubSubRedisTask.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.geode.benchmark.redis.tasks;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class StopPubSubRedisTask implements Task {
- private static final Logger logger = LoggerFactory.getLogger(StopPubSubRedisTask.class);
-
- public StopPubSubRedisTask() {
- logger.info("Initialized: PubSubEndRedisTask");
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- SubscribeRedisTask.shutdown(context);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopRedisClient.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopRedisClient.java
deleted file mode 100644
index 8c55fdf..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopRedisClient.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class StopRedisClient implements Task {
- final RedisClientManager redisClientManager;
-
- public StopRedisClient(final RedisClientManager redisClientManager) {
- this.redisClientManager = redisClientManager;
- }
-
- @Override
- public void run(TestContext context) throws Exception {
- redisClientManager.close();
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopRedisServer.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopRedisServer.java
deleted file mode 100644
index ffe776a..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/StopRedisServer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class StopRedisServer implements Task {
-
- @Override
- public void run(final TestContext context) throws Exception {
- new ProcessBuilder().command("docker", "kill", "redis-cluster-node").start();
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/SubscribeRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/SubscribeRedisTask.java
deleted file mode 100644
index 6cda0d5..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/SubscribeRedisTask.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-import java.util.concurrent.BrokenBarrierException;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.CyclicBarrier;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.geode.benchmark.redis.tests.PubSubBenchmarkConfiguration;
-import org.apache.geode.perftest.Task;
-import org.apache.geode.perftest.TestContext;
-
-public class SubscribeRedisTask implements Task {
- private static final Logger logger = LoggerFactory.getLogger(SubscribeRedisTask.class);
-
- // TextContext keys for shared objects between the SubscribeTask (before) and
- // the PubSubEndTask (after)
- private static final String SUBSCRIBERS_CONTEXT_KEY = "subscribers";
- private static final String SUBSCRIBERS_THREAD_POOL = "threadPool";
-
- private final List<RedisClientManager> subscriberClientManagers;
- private final boolean validate;
- private final PubSubBenchmarkConfiguration pubSubConfig;
-
- public SubscribeRedisTask(final PubSubBenchmarkConfiguration pubSubConfig,
- final List<RedisClientManager> subscriberClientManagers,
- final boolean validate) {
- this.pubSubConfig = pubSubConfig;
- logger.info(
- "Initialized: SubscribeRedisTask numChannels={}, numMessagesPerChannel={}, messageLength={}, validate={}, useChannelPattern={}",
- pubSubConfig.getNumChannels(), pubSubConfig.getNumMessagesPerChannelOperation(),
- pubSubConfig.getMessageLength(), validate, pubSubConfig.shouldUseChannelPattern());
- this.subscriberClientManagers = subscriberClientManagers;
- this.validate = validate;
- }
-
- @Override
- public void run(final TestContext context) throws Exception {
- final CyclicBarrier barrier = pubSubConfig.getCyclicBarrier();
-
- // save subscribers in the TestContext, as this will be shared with
- // the after tasks which will call shutdown()
- final List<Subscriber> subscribers = subscriberClientManagers.stream()
- .map(cm -> new Subscriber(cm.get(), barrier, context))
- .collect(Collectors.toList());
- context.setAttribute(SUBSCRIBERS_CONTEXT_KEY, subscribers);
-
- // save thread pool in TestContext, so it can be shutdown cleanly after
- final ExecutorService subscriberThreadPool =
- Executors.newFixedThreadPool(subscriberClientManagers.size());
- context.setAttribute(SUBSCRIBERS_THREAD_POOL, subscriberThreadPool);
-
- for (final Subscriber subscriber : subscribers) {
- subscriber.subscribeAsync(subscriberThreadPool, context);
- }
-
- // sleep to try to make sure subscribe is complete before continuing
- Thread.sleep(1000);
- }
-
- public static void shutdown(final TestContext cxt) throws Exception {
- // precondition: method run has been previously executed in this Worker
- // and therefore subscribers and threadPool are available
- @SuppressWarnings("unchecked")
- final List<Subscriber> subscribers =
- (List<Subscriber>) cxt.getAttribute(SUBSCRIBERS_CONTEXT_KEY);
-
- for (final SubscribeRedisTask.Subscriber subscriber : subscribers) {
- subscriber.waitForCompletion(cxt);
- }
-
- logger.info("Shutting down thread pool…");
-
- final ExecutorService threadPool = (ExecutorService) cxt.getAttribute(SUBSCRIBERS_THREAD_POOL);
- threadPool.shutdownNow();
- // noinspection ResultOfMethodCallIgnored
- threadPool.awaitTermination(5, TimeUnit.MINUTES);
-
- logger.info("Thread pool terminated");
- }
-
- public class Subscriber {
- private final AtomicInteger messagesReceived;
- private final int numMessagesExpected;
- private final RedisClient client;
- private final RedisClient.SubscriptionListener listener;
- private CompletableFuture<Void> future;
-
- Subscriber(final RedisClient client, final CyclicBarrier barrier, final TestContext context) {
- this.messagesReceived = new AtomicInteger(0);
- this.client = client;
-
- numMessagesExpected =
- pubSubConfig.getNumChannels() * pubSubConfig.getNumMessagesPerChannelOperation();
-
- listener = client.createSubscriptionListener(pubSubConfig,
- (String channel, String message, RedisClient.Unsubscriber unsubscriber) -> {
- if (channel.equals(pubSubConfig.getControlChannel())) {
- if (message.equals(pubSubConfig.getEndMessage())) {
- unsubscriber.unsubscribe(pubSubConfig.getAllSubscribeChannels());
- logger.info("Subscriber thread unsubscribed.");
- } else {
- throw new AssertionError("Unrecognized control message: " + message);
- }
- } else if (receiveMessageAndIsComplete(channel, message, context)) {
- try {
- reset();
- barrier.await(10, TimeUnit.SECONDS);
- } catch (final TimeoutException e) {
- throw new RuntimeException("Subscriber timed out while waiting on barrier");
- } catch (final InterruptedException | BrokenBarrierException ignored) {
- }
- }
- return null;
- });
- }
-
- public void subscribeAsync(final ExecutorService threadPool, final TestContext context) {
- future = CompletableFuture.runAsync(
- () -> {
- final List<String> channels = pubSubConfig.getAllSubscribeChannels();
- if (pubSubConfig.shouldUseChannelPattern()) {
- context.logProgress("Subscribing to channel patterns " + channels);
- client.psubscribe(listener, channels.toArray(new String[] {}));
- } else {
- context.logProgress("Subscribing to channels " + channels);
- client.subscribe(listener, channels.toArray(new String[] {}));
- }
- }, threadPool);
- future.whenComplete((result, ex) -> {
- logger.info("Subscriber thread completed");
- if (ex != null) {
- ex.printStackTrace();
- context.logProgress(String.format("Subscriber completed with exception '%s')", ex));
- }
- });
- }
-
- public void waitForCompletion(final TestContext ctx) throws Exception {
- if (future == null) {
- return;
- }
- assertThat(future.get(10, TimeUnit.SECONDS)).isNull();
- }
-
- // Receive a message and return true if all messages have been received
- private boolean receiveMessageAndIsComplete(final String channel, final String message,
- final TestContext context) {
- if (validate) {
- context.logProgress(String.format(
- "Received message %s of length %d on channel %s; messagesReceived=%d; messagesExpected=%d",
- message, message.length(), channel, messagesReceived.get() + 1, numMessagesExpected));
- assertThat(message.length()).isEqualTo(pubSubConfig.getMessageLength());
- }
- return messagesReceived.incrementAndGet() >= numMessagesExpected;
- }
-
- private void reset() {
- messagesReceived.set(0);
- }
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZaddAndZremRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZaddAndZremRedisTask.java
deleted file mode 100644
index 3cbc20e..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZaddAndZremRedisTask.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class ZaddAndZremRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(ZaddAndZremRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
-
- private transient LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public ZaddAndZremRedisTask(final RedisClientManager redisClientManager,
- final LongRange keyRange) {
- logger.info("Initialized: keyRange={}", keyRange);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- private static String NEXT_KEY = "N";
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final long k = keyRange.random();
-
- final String key = keyCache.valueOf(toKey(k));
- final long score = toPart(k);
- final String value = keyCache.valueOf(score);
- redisClient.zadd(key, score, value);
- redisClient.zrem(key, value);
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZaddRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZaddRedisTask.java
deleted file mode 100644
index 646cfd5..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZaddRedisTask.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class ZaddRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(ZaddRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
-
- private transient LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public ZaddRedisTask(final RedisClientManager redisClientManager, final LongRange keyRange) {
- logger.info("Initialized: keyRange={}", keyRange);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final long k = keyRange.random();
-
- final String key = keyCache.valueOf(toKey(k));
- final long score = toPart(k);
- final String value = keyCache.valueOf(score);
- redisClient.zadd(key, score, value);
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeByScoreRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeByScoreRedisTask.java
deleted file mode 100644
index 3a85a02..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeByScoreRedisTask.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.stream.Collectors;
-import java.util.stream.LongStream;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class ZrangeByScoreRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(ZrangeByScoreRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
- private final boolean validate;
-
- private transient LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public ZrangeByScoreRedisTask(final RedisClientManager redisClientManager,
- final LongRange keyRange,
- final boolean validate) {
- logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- this.validate = validate;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final long k = keyRange.random();
-
- final String key = keyCache.valueOf(toKey(k));
-
- final long start = ThreadLocalRandom.current()
- .nextLong(0, RedisSplitKey.NUM_PARTS_PER_KEY);
- final long len = ThreadLocalRandom.current()
- .nextLong(0, RedisSplitKey.NUM_PARTS_PER_KEY - start);
- final long stop = start + len;
-
- final List<String> values = redisClient.zrangeByScore(key, start, stop);
- if (validate) {
- final LongRange range =
- new LongRange(start, stop);
-
- final List<String> expectedValues =
- LongStream.range(range.getMin(), range.getMax())
- .boxed()
- .map(keyCache::valueOf)
- .collect(Collectors.toList());
-
- assertThat(values).isEqualTo(expectedValues);
- }
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeRedisTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeRedisTask.java
deleted file mode 100644
index 034a2c4..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeRedisTask.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tasks;
-
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toKey;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.stream.Collectors;
-import java.util.stream.LongStream;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.yardstickframework.BenchmarkConfiguration;
-import org.yardstickframework.BenchmarkDriverAdapter;
-
-import org.apache.geode.benchmark.LongRange;
-
-public class ZrangeRedisTask extends BenchmarkDriverAdapter implements Serializable {
- private static final Logger logger = LoggerFactory.getLogger(ZrangeRedisTask.class);
-
- private final RedisClientManager redisClientManager;
- private final LongRange keyRange;
- private final boolean validate;
-
- private transient LongStringCache keyCache;
- private transient RedisClient redisClient;
-
- public ZrangeRedisTask(final RedisClientManager redisClientManager, final LongRange keyRange,
- final boolean validate) {
- logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
- this.redisClientManager = redisClientManager;
- this.keyRange = keyRange;
- this.validate = validate;
- }
-
- @Override
- public void setUp(final BenchmarkConfiguration cfg) throws Exception {
- super.setUp(cfg);
-
- keyCache = new LongStringCache(keyRange);
- redisClient = redisClientManager.get();
- }
-
- @Override
- public boolean test(final Map<Object, Object> ctx) throws Exception {
- final long k = keyRange.random();
-
- final String key = keyCache.valueOf(toKey(k));
-
- final long start = ThreadLocalRandom.current()
- .nextLong(0, RedisSplitKey.NUM_PARTS_PER_KEY);
- final long len = ThreadLocalRandom.current()
- .nextLong(0, RedisSplitKey.NUM_PARTS_PER_KEY - start);
- final long stop = start + len;
-
- final List<String> values = redisClient.zrange(key, start, stop);
- if (validate) {
- final LongRange range =
- new LongRange(start, stop);
-
- final List<String> expectedValues =
- LongStream.range(range.getMin(), range.getMax())
- .boxed()
- .map(keyCache::valueOf)
- .collect(Collectors.toList());
-
- assertThat(values).isEqualTo(expectedValues);
- }
- return true;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubBenchmarkConfiguration.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubBenchmarkConfiguration.java
deleted file mode 100644
index 67b6388..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubBenchmarkConfiguration.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static org.apache.geode.benchmark.Config.after;
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.redis.tests.RedisBenchmark.RedisClusterImplementation.Manual;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.CyclicBarrier;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.Stream;
-
-import org.apache.geode.benchmark.redis.tasks.FlushDbTask;
-import org.apache.geode.benchmark.redis.tasks.JedisClientManager;
-import org.apache.geode.benchmark.redis.tasks.LettucePubSubClientManager;
-import org.apache.geode.benchmark.redis.tasks.PublishRedisTask;
-import org.apache.geode.benchmark.redis.tasks.RedisClientManager;
-import org.apache.geode.benchmark.redis.tasks.StartRedisClient;
-import org.apache.geode.benchmark.redis.tasks.StopPubSubRedisTask;
-import org.apache.geode.benchmark.redis.tasks.StopRedisClient;
-import org.apache.geode.benchmark.redis.tasks.SubscribeRedisTask;
-import org.apache.geode.perftest.TestConfig;
-
-public abstract class PubSubBenchmarkConfiguration implements Serializable {
-
- public static final long DURATION_SECONDS = MINUTES.toSeconds(10);
-
- public abstract CyclicBarrier getCyclicBarrier();
-
- public abstract int getNumSubscribers();
-
- public abstract int getNumChannels();
-
- public abstract int getNumMessagesPerChannelOperation();
-
- public abstract int getMessageLength();
-
- public abstract String getControlChannel();
-
- public abstract String getEndMessage();
-
- public abstract boolean shouldUseChannelPattern();
-
- public List<String> getBenchmarkSubscribeChannels() {
- return shouldUseChannelPattern() ? Collections.singletonList("channel*")
- : getBenchmarkPublishChannels();
- }
-
- public List<String> getBenchmarkPublishChannels() {
- return IntStream.range(0, getNumChannels()).mapToObj(n -> "channel" + n)
- .collect(Collectors.toList());
- }
-
- /** Return list of all channels for subscribing including the control channel. */
- public List<String> getAllSubscribeChannels() {
- return Stream.concat(getBenchmarkSubscribeChannels().stream(),
- Stream.of(getControlChannel())).collect(Collectors.toList());
- }
-
- public void configurePubSubTest(final RedisBenchmark benchmark,
- final TestConfig config) {
-
- benchmark.configureClusterTopology(config);
-
- // By design this benchmark is run with a single publisher,
- // the subscriber threads are configured separately
- config.threads(1);
-
- // Run twice as long due to longer operations than typical benchmarks
- config.durationSeconds(DURATION_SECONDS);
-
- final Supplier<RedisClientManager> clientManagerSupplier;
- switch (benchmark.getRedisClientImplementation()) {
- case Jedis:
- clientManagerSupplier = JedisClientManager::new;
- break;
- case Lettuce:
- clientManagerSupplier = LettucePubSubClientManager::new;
- break;
- default:
- throw new AssertionError("unexpected RedisClientImplementation");
- }
-
- // client manager for publisher
- benchmark.redisClientManager = clientManagerSupplier.get();
-
- // client managers for subscribers
- final List<RedisClientManager> subscriberClients =
- Stream.generate(clientManagerSupplier).limit(getNumSubscribers())
- .collect(Collectors.toList());
-
-
- before(config, new StartRedisClient(benchmark.redisClientManager), CLIENT);
-
- before(config,
- new SubscribeRedisTask(this, subscriberClients,
- benchmark.isValidationEnabled()),
- CLIENT);
-
- if (Manual == benchmark.getRedisClusterImplementation()) {
- before(config, new FlushDbTask(benchmark.redisClientManager), CLIENT);
- }
-
- workload(config,
- new PublishRedisTask(this, benchmark.redisClientManager),
- CLIENT);
-
- after(config, new StopPubSubRedisTask(), CLIENT);
-
- after(config, new StopRedisClient(benchmark.redisClientManager), CLIENT);
- subscriberClients.forEach(c -> after(config, new StopRedisClient(c), CLIENT));
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubLargeBenchmarkConfiguration.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubLargeBenchmarkConfiguration.java
deleted file mode 100644
index 54df524..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubLargeBenchmarkConfiguration.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.benchmark.redis.tests;
-
-import java.util.concurrent.CyclicBarrier;
-
-public class PubSubLargeBenchmarkConfiguration extends PubSubBenchmarkConfiguration {
-
- private static final int NUM_SUBSCRIBERS = 10;
- private static final int NUM_CHANNELS = 5;
- private static final int NUM_MESSAGES_PER_CHANNEL_OPERATION = 40000;
- private static final int MESSAGE_LENGTH = 500;
- private static final String CONTROL_CHANNEL = "__control__";
- private static final String END_MESSAGE = "END";
-
- private static final CyclicBarrier BARRIER = new CyclicBarrier(NUM_SUBSCRIBERS + 1);
-
- private final boolean shouldUseChannelPattern;
-
- public PubSubLargeBenchmarkConfiguration() {
- this(false);
- }
-
- public PubSubLargeBenchmarkConfiguration(final boolean shouldUseChannelPattern) {
- this.shouldUseChannelPattern = shouldUseChannelPattern;
- }
-
- @Override
- public boolean shouldUseChannelPattern() {
- return shouldUseChannelPattern;
- }
-
- @Override
- public String getEndMessage() {
- return END_MESSAGE;
- }
-
- @Override
- public CyclicBarrier getCyclicBarrier() {
- return BARRIER;
- }
-
- @Override
- public int getNumSubscribers() {
- return NUM_SUBSCRIBERS;
- }
-
- @Override
- public int getNumChannels() {
- return NUM_CHANNELS;
- }
-
- @Override
- public int getNumMessagesPerChannelOperation() {
- return NUM_MESSAGES_PER_CHANNEL_OPERATION;
- }
-
- @Override
- public int getMessageLength() {
- return MESSAGE_LENGTH;
- }
-
- @Override
- public String getControlChannel() {
- return CONTROL_CHANNEL;
- }
-
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubSmallBenchmarkConfiguration.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubSmallBenchmarkConfiguration.java
deleted file mode 100644
index c9a27a9..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/PubSubSmallBenchmarkConfiguration.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import java.util.concurrent.CyclicBarrier;
-
-public class PubSubSmallBenchmarkConfiguration extends PubSubBenchmarkConfiguration {
-
- private static final int NUM_SUBSCRIBERS = 1;
- private static final int NUM_CHANNELS = 1;
- private static final int NUM_MESSAGES_PER_CHANNEL_OPERATION = 1;
- private static final int MESSAGE_LENGTH = 1;
- private static final String CONTROL_CHANNEL = "__control__";
- private static final String END_MESSAGE = "END";
-
- private static final CyclicBarrier BARRIER = new CyclicBarrier(NUM_SUBSCRIBERS + 1);
-
- private final boolean shouldUseChannelPattern;
-
- public PubSubSmallBenchmarkConfiguration() {
- this(false);
- }
-
- public PubSubSmallBenchmarkConfiguration(final boolean shouldUseChannelPattern) {
- this.shouldUseChannelPattern = shouldUseChannelPattern;
- }
-
- @Override
- public boolean shouldUseChannelPattern() {
- return shouldUseChannelPattern;
- }
-
- @Override
- public String getEndMessage() {
- return END_MESSAGE;
- }
-
- @Override
- public CyclicBarrier getCyclicBarrier() {
- return BARRIER;
- }
-
- @Override
- public int getNumSubscribers() {
- return NUM_SUBSCRIBERS;
- }
-
- @Override
- public int getNumChannels() {
- return NUM_CHANNELS;
- }
-
- @Override
- public int getNumMessagesPerChannelOperation() {
- return NUM_MESSAGES_PER_CHANNEL_OPERATION;
- }
-
- @Override
- public int getMessageLength() {
- return MESSAGE_LENGTH;
- }
-
- @Override
- public String getControlChannel() {
- return CONTROL_CHANNEL;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisBenchmark.java
deleted file mode 100644
index ffd079e..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisBenchmark.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static com.google.common.base.Strings.isNullOrEmpty;
-import static java.lang.Long.getLong;
-import static org.apache.geode.benchmark.Config.after;
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.redis.tests.RedisBenchmark.RedisClientImplementation.Jedis;
-import static org.apache.geode.benchmark.redis.tests.RedisBenchmark.RedisClusterImplementation.Geode;
-import static org.apache.geode.benchmark.redis.tests.RedisBenchmark.RedisClusterImplementation.Manual;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_MAX_KEY;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_MIN_KEY;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.junit.jupiter.api.Test;
-
-import org.apache.geode.benchmark.LongRange;
-import org.apache.geode.benchmark.redis.tasks.FlushDbTask;
-import org.apache.geode.benchmark.redis.tasks.JedisClientManager;
-import org.apache.geode.benchmark.redis.tasks.LettuceClientManager;
-import org.apache.geode.benchmark.redis.tasks.RedisClientManager;
-import org.apache.geode.benchmark.redis.tasks.StartRedisClient;
-import org.apache.geode.benchmark.redis.tasks.StopRedisClient;
-import org.apache.geode.benchmark.redis.topology.GeodeTopology;
-import org.apache.geode.benchmark.redis.topology.ManualRedisTopology;
-import org.apache.geode.benchmark.redis.topology.RedisTopology;
-import org.apache.geode.benchmark.tests.AbstractPerformanceTest;
-import org.apache.geode.benchmark.tests.GeodeBenchmark;
-import org.apache.geode.perftest.TestConfig;
-import org.apache.geode.perftest.TestRunners;
-
-public class RedisBenchmark extends AbstractPerformanceTest {
-
- public static final String WITH_REDIS_CLIENT_PROPERTY = "benchmark.withRedisClient";
- public static final String WITH_REDIS_CLUSTER_PROPERTY = "benchmark.withRedisCluster";
-
- public static final String REDIS_SERVERS_ATTRIBUTE = "RedisBenchmark.Servers";
-
- public enum RedisClientImplementation {
- Jedis,
- Lettuce;
-
- public static RedisClientImplementation valueOfIgnoreCase(final String name) {
- for (RedisClientImplementation redisClientImplementation : RedisClientImplementation
- .values()) {
- if (redisClientImplementation.name().equalsIgnoreCase(name)) {
- return redisClientImplementation;
- }
- }
- throw new IllegalArgumentException("Unknown Redis client implementation: " + name);
- }
- }
-
- public enum RedisClusterImplementation {
- Geode,
- Redis,
- Manual;
-
- public static RedisClusterImplementation valueOfIgnoreCase(final String name) {
- for (RedisClusterImplementation redisClusterImplementation : RedisClusterImplementation
- .values()) {
- if (redisClusterImplementation.name().equalsIgnoreCase(name)) {
- return redisClusterImplementation;
- }
- }
- throw new IllegalArgumentException("Unknown Redis cluster implementation: " + name);
- }
- }
-
- protected transient RedisClientManager redisClientManager;
-
- protected LongRange keyRange =
- new LongRange(getLong(WITH_MIN_KEY, 0), getLong(WITH_MAX_KEY, 1000000));
-
- public void setKeyRange(final LongRange keyRange) {
- this.keyRange = keyRange;
- }
-
- @Test
- public void run() throws Exception {
- TestRunners.defaultRunner().runTest(this);
- }
-
- @Override
- public TestConfig configure() {
-
- TestConfig config = GeodeBenchmark.createConfig();
-
- configureClusterTopology(config);
-
- switch (getRedisClientImplementation()) {
- case Jedis:
- redisClientManager = new JedisClientManager();
- break;
- case Lettuce:
- redisClientManager = new LettuceClientManager();
- break;
- }
-
- before(config, new StartRedisClient(redisClientManager), CLIENT);
-
- if (Manual == getRedisClusterImplementation()) {
- before(config, new FlushDbTask(redisClientManager), CLIENT);
- }
-
- after(config, new StopRedisClient(redisClientManager), CLIENT);
-
- return config;
- }
-
- void configureClusterTopology(final TestConfig config) {
- switch (getRedisClusterImplementation()) {
- case Redis:
- RedisTopology.configure(config);
- break;
- case Geode:
- GeodeTopology.configure(config);
- break;
- case Manual:
- ManualRedisTopology.configure(config);
- break;
- }
- }
-
- RedisClientImplementation getRedisClientImplementation() {
- final String sniProp = System.getProperty(WITH_REDIS_CLIENT_PROPERTY);
- if (isNullOrEmpty(sniProp)) {
- return Jedis;
- }
-
- return RedisClientImplementation.valueOfIgnoreCase(sniProp);
- }
-
- RedisClusterImplementation getRedisClusterImplementation() {
- final String sniProp = System.getProperty(WITH_REDIS_CLUSTER_PROPERTY);
- if (isNullOrEmpty(sniProp)) {
- return Geode;
- }
-
- return RedisClusterImplementation.valueOfIgnoreCase(sniProp);
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisGetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisGetBenchmark.java
deleted file mode 100644
index 23963ec..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisGetBenchmark.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.GetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedis;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisGetBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedis(redisClientManager, keyRange), CLIENT);
- workload(config, new GetRedisTask(redisClientManager, keyRange, isValidationEnabled()), CLIENT);
- return config;
-
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHgetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHgetBenchmark.java
deleted file mode 100644
index 8f40a46..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHgetBenchmark.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.HgetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisHash;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisHgetBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisHash(redisClientManager, keyRange), CLIENT);
- workload(config, new HgetRedisTask(redisClientManager, keyRange, isValidationEnabled()),
- CLIENT);
- return config;
-
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHsetAndHgetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHsetAndHgetBenchmark.java
deleted file mode 100644
index 7d8f87e..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHsetAndHgetBenchmark.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.HgetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.HsetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisHash;
-import org.apache.geode.benchmark.tasks.CompositeTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisHsetAndHgetBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisHash(redisClientManager, keyRange), CLIENT);
-
- workload(config, new CompositeTask(
- new HsetRedisTask(redisClientManager, keyRange),
- new HgetRedisTask(redisClientManager, keyRange, false)), CLIENT);
-
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHsetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHsetBenchmark.java
deleted file mode 100644
index 0b59142..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisHsetBenchmark.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.HsetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisHash;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisHsetBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisHash(redisClientManager, keyRange), CLIENT);
- workload(config, new HsetRedisTask(redisClientManager, keyRange),
- CLIENT);
- return config;
-
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubLargeBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubLargeBenchmark.java
deleted file mode 100644
index 1eab809..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubLargeBenchmark.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.geode.benchmark.redis.tests;
-
-import org.junit.jupiter.api.Disabled;
-
-import org.apache.geode.benchmark.tests.GeodeBenchmark;
-import org.apache.geode.perftest.TestConfig;
-
-@Disabled("Disabled due to high variation in average latency")
-public class RedisPubSubLargeBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig testConfig = GeodeBenchmark.createConfig();
- final PubSubBenchmarkConfiguration pubSubConfig = new PubSubLargeBenchmarkConfiguration();
- pubSubConfig.configurePubSubTest(this, testConfig);
- return testConfig;
- }
-
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubPatternLargeBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubPatternLargeBenchmark.java
deleted file mode 100644
index dad999e..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubPatternLargeBenchmark.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.geode.benchmark.redis.tests;
-
-import org.junit.jupiter.api.Disabled;
-
-import org.apache.geode.benchmark.tests.GeodeBenchmark;
-import org.apache.geode.perftest.TestConfig;
-
-@Disabled("Disabled due to high variation in average latency")
-public class RedisPubSubPatternLargeBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig testConfig = GeodeBenchmark.createConfig();
- final PubSubBenchmarkConfiguration pubSubConfig = new PubSubLargeBenchmarkConfiguration(true);
- pubSubConfig.configurePubSubTest(this, testConfig);
- return testConfig;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubPatternSmallBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubPatternSmallBenchmark.java
deleted file mode 100644
index 8c557ee..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubPatternSmallBenchmark.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.geode.benchmark.redis.tests;
-
-import org.junit.jupiter.api.Disabled;
-
-import org.apache.geode.benchmark.tests.GeodeBenchmark;
-import org.apache.geode.perftest.TestConfig;
-
-@Disabled("Disabled due to high variation in average latency")
-public class RedisPubSubPatternSmallBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig testConfig = GeodeBenchmark.createConfig();
- final PubSubBenchmarkConfiguration pubSubConfig = new PubSubSmallBenchmarkConfiguration(true);
- pubSubConfig.configurePubSubTest(this, testConfig);
- return testConfig;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubSmallBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubSmallBenchmark.java
deleted file mode 100644
index 92d9bde..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisPubSubSmallBenchmark.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import org.junit.jupiter.api.Disabled;
-
-import org.apache.geode.benchmark.tests.GeodeBenchmark;
-import org.apache.geode.perftest.TestConfig;
-
-@Disabled("Disabled due to high variation in average latency")
-public class RedisPubSubSmallBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig testConfig = GeodeBenchmark.createConfig();
- final PubSubSmallBenchmarkConfiguration pubsubConfig = new PubSubSmallBenchmarkConfiguration();
- pubsubConfig.configurePubSubTest(this, testConfig);
- return testConfig;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisSetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisSetBenchmark.java
deleted file mode 100644
index a5e4eff..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisSetBenchmark.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedis;
-import org.apache.geode.benchmark.redis.tasks.SetRedisTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisSetBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedis(redisClientManager, keyRange), CLIENT);
- workload(config, new SetRedisTask(redisClientManager, keyRange, isValidationEnabled()), CLIENT);
- return config;
-
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedHsetAndHgetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedHsetAndHgetBenchmark.java
deleted file mode 100644
index 635a0b1..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedHsetAndHgetBenchmark.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.HgetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.HsetRedisTask;
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisHash;
-import org.apache.geode.benchmark.tasks.WeightedTasks;
-import org.apache.geode.benchmark.tasks.WeightedTasks.WeightedTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisWeightedHsetAndHgetBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisHash(redisClientManager, keyRange), CLIENT);
-
- workload(config, new WeightedTasks(
- new WeightedTask(20, new HsetRedisTask(redisClientManager, keyRange)),
- new WeightedTask(80, new HgetRedisTask(redisClientManager, keyRange, false))), CLIENT);
-
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedZaddAndZrangeBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedZaddAndZrangeBenchmark.java
deleted file mode 100644
index 0838ab7..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedZaddAndZrangeBenchmark.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisSortedSet;
-import org.apache.geode.benchmark.redis.tasks.ZaddRedisTask;
-import org.apache.geode.benchmark.redis.tasks.ZrangeRedisTask;
-import org.apache.geode.benchmark.tasks.WeightedTasks;
-import org.apache.geode.benchmark.tasks.WeightedTasks.WeightedTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisWeightedZaddAndZrangeBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisSortedSet(redisClientManager, keyRange), CLIENT);
-
- workload(config, new WeightedTasks(
- new WeightedTask(20, new ZaddRedisTask(redisClientManager, keyRange)),
- new WeightedTask(80, new ZrangeRedisTask(redisClientManager, keyRange, false))), CLIENT);
-
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddAndZremBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddAndZremBenchmark.java
deleted file mode 100644
index b347548..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddAndZremBenchmark.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisSortedSet;
-import org.apache.geode.benchmark.redis.tasks.ZaddAndZremRedisTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisZaddAndZremBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisSortedSet(redisClientManager, keyRange), CLIENT);
- workload(config, new ZaddAndZremRedisTask(redisClientManager, keyRange),
- CLIENT);
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddBenchmark.java
deleted file mode 100644
index 6d3bd1f..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddBenchmark.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisSortedSet;
-import org.apache.geode.benchmark.redis.tasks.ZaddRedisTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisZaddBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisSortedSet(redisClientManager, keyRange), CLIENT);
- workload(config, new ZaddRedisTask(redisClientManager, keyRange),
- CLIENT);
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeBenchmark.java
deleted file mode 100644
index c2474af..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeBenchmark.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisSortedSet;
-import org.apache.geode.benchmark.redis.tasks.ZrangeRedisTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisZrangeBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisSortedSet(redisClientManager, keyRange), CLIENT);
- workload(config, new ZrangeRedisTask(redisClientManager, keyRange, isValidationEnabled()),
- CLIENT);
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeByScoreBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeByScoreBenchmark.java
deleted file mode 100644
index 8ec26ec..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeByScoreBenchmark.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import org.apache.geode.benchmark.redis.tasks.PrePopulateRedisSortedSet;
-import org.apache.geode.benchmark.redis.tasks.ZrangeByScoreRedisTask;
-import org.apache.geode.perftest.TestConfig;
-
-public class RedisZrangeByScoreBenchmark extends RedisBenchmark {
-
- @Override
- public TestConfig configure() {
- final TestConfig config = super.configure();
-
- before(config, new PrePopulateRedisSortedSet(redisClientManager, keyRange), CLIENT);
- workload(config,
- new ZrangeByScoreRedisTask(redisClientManager, keyRange, isValidationEnabled()),
- CLIENT);
- return config;
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/GeodeTopology.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/GeodeTopology.java
deleted file mode 100644
index 2df3097..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/GeodeTopology.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.topology;
-
-import static org.apache.geode.benchmark.Config.after;
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.role;
-import static org.apache.geode.benchmark.topology.Ports.EPHEMERAL_PORT;
-import static org.apache.geode.benchmark.topology.Ports.LOCATOR_PORT;
-import static org.apache.geode.benchmark.topology.Ports.REDIS_PORT;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-import static org.apache.geode.benchmark.topology.Roles.LOCATOR;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import org.apache.geode.benchmark.redis.parameters.GeodeParameters;
-import org.apache.geode.benchmark.redis.parameters.NettyParameters;
-import org.apache.geode.benchmark.redis.tasks.InitRedisServersAttribute;
-import org.apache.geode.benchmark.redis.tasks.InitRegion;
-import org.apache.geode.benchmark.redis.tasks.StartGeodeServer;
-import org.apache.geode.benchmark.tasks.StartLocator;
-import org.apache.geode.benchmark.tasks.StopLocator;
-import org.apache.geode.benchmark.tasks.StopServer;
-import org.apache.geode.benchmark.topology.Topology;
-import org.apache.geode.perftest.TestConfig;
-
-public class GeodeTopology extends Topology {
- private static final int NUM_LOCATORS = Integer.getInteger(WITH_LOCATOR_COUNT_PROPERTY, 1);
- private static final int NUM_SERVERS = Integer.getInteger(WITH_SERVER_COUNT_PROPERTY, 6);
- private static final int NUM_CLIENTS = Integer.getInteger(WITH_CLIENT_COUNT_PROPERTY, 1);
-
- public static void configure(TestConfig config) {
- role(config, LOCATOR, NUM_LOCATORS);
- role(config, SERVER, NUM_SERVERS);
- role(config, CLIENT, NUM_CLIENTS);
-
- configureCommon(config);
-
- NettyParameters.configure(config);
- GeodeParameters.configure(config);
-
- before(config, new StartLocator(LOCATOR_PORT), LOCATOR);
- before(config, new StartGeodeServer(LOCATOR_PORT, EPHEMERAL_PORT, REDIS_PORT), SERVER);
- before(config, new InitRegion(), SERVER);
- before(config, new InitRedisServersAttribute(), CLIENT);
-
- after(config, new StopServer(), SERVER);
- after(config, new StopLocator(), LOCATOR);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/ManualRedisTopology.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/ManualRedisTopology.java
deleted file mode 100644
index 2074d74..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/ManualRedisTopology.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.topology;
-
-import static java.lang.Integer.parseInt;
-import static java.util.Arrays.stream;
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.role;
-import static org.apache.geode.benchmark.topology.Ports.REDIS_PORT;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-
-import java.net.InetSocketAddress;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.geode.benchmark.redis.tasks.InitRedisServersAttribute;
-import org.apache.geode.benchmark.topology.Topology;
-import org.apache.geode.perftest.TestConfig;
-
-public class ManualRedisTopology extends Topology {
- private static final int NUM_CLIENTS = Integer.getInteger(WITH_CLIENT_COUNT_PROPERTY, 1);
-
- public static final String WITH_REDIS_SERVERS_PROPERTY = "benchmark.withRedisServers";
-
- public static void configure(TestConfig config) {
- role(config, CLIENT, NUM_CLIENTS);
-
- configureCommon(config);
-
- // Elasticache DNS is flaky so don't cache any of it.
- config.jvmArgs(CLIENT.name(), "-Dsun.net.inetaddr.ttl=0", "-Dsun.net.inetaddr.negative.ttl=0");
-
- final String serversProperty = System.getProperty(WITH_REDIS_SERVERS_PROPERTY);
- if (null == serversProperty || serversProperty.trim().isEmpty()) {
- throw new IllegalArgumentException(
- WITH_REDIS_SERVERS_PROPERTY + " must be set to server address(es).");
- }
-
- final List<InetSocketAddress> servers = stream(serversProperty.split(";")).map(s -> {
- final String[] addressParts = s.split(":");
- return InetSocketAddress.createUnresolved(addressParts[0],
- addressParts.length == 1 ? REDIS_PORT : parseInt(addressParts[1]));
- }).collect(Collectors.toList());
-
- before(config, new InitRedisServersAttribute(servers), CLIENT);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/RedisTopology.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/RedisTopology.java
deleted file mode 100644
index 4c18fd0..0000000
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/topology/RedisTopology.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.topology;
-
-import static java.lang.Integer.getInteger;
-import static org.apache.geode.benchmark.Config.after;
-import static org.apache.geode.benchmark.Config.before;
-import static org.apache.geode.benchmark.Config.role;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_REPLICAS;
-import static org.apache.geode.benchmark.topology.Roles.CLIENT;
-import static org.apache.geode.benchmark.topology.Roles.LOCATOR;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-
-import org.apache.geode.benchmark.redis.tasks.CreateRedisCluster;
-import org.apache.geode.benchmark.redis.tasks.InitRedisServersAttribute;
-import org.apache.geode.benchmark.redis.tasks.StartRedisServer;
-import org.apache.geode.benchmark.redis.tasks.StopRedisServer;
-import org.apache.geode.benchmark.topology.Topology;
-import org.apache.geode.perftest.TestConfig;
-
-/**
- * Redis running in containers on the provided servers.
- *
- * Locators hosts are wasted so that Redis server placement happens on the same hosts as Geode.
- */
-public class RedisTopology extends Topology {
- private static final int NUM_LOCATORS = Integer.getInteger(WITH_LOCATOR_COUNT_PROPERTY, 1);
- private static final int NUM_SERVERS = Integer.getInteger(WITH_SERVER_COUNT_PROPERTY, 6);
- private static final int NUM_CLIENTS = Integer.getInteger(WITH_CLIENT_COUNT_PROPERTY, 1);
-
- public static void configure(TestConfig config) {
- role(config, LOCATOR, NUM_LOCATORS);
- role(config, SERVER, NUM_SERVERS);
- role(config, CLIENT, NUM_CLIENTS);
-
- configureCommon(config);
-
- before(config, new StartRedisServer(), SERVER);
- before(config, new CreateRedisCluster(getInteger(WITH_REPLICAS, 1)), CLIENT);
- before(config, new InitRedisServersAttribute(), CLIENT);
-
- after(config, new StopRedisServer(), SERVER);
- }
-}
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/topology/Ports.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/topology/Ports.java
index 0dc90df..41da7f1 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/topology/Ports.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/topology/Ports.java
@@ -34,10 +34,4 @@
* The SNI proxy port.
*/
public static final int SNI_PROXY_PORT = 15443;
-
- /**
- * Default Redis port.
- */
- public static final int REDIS_PORT = 6379;
-
}
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/tests/RedisBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/tests/RedisBenchmarkTest.java
deleted file mode 100644
index 3cbc5cd..0000000
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/tests/RedisBenchmarkTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.tests;
-
-import static java.lang.System.setProperty;
-import static org.apache.geode.benchmark.redis.tests.RedisBenchmark.WITH_REDIS_CLIENT_PROPERTY;
-import static org.apache.geode.benchmark.topology.Topology.WITH_SERVER_COUNT_PROPERTY;
-
-import java.io.File;
-
-import org.junit.jupiter.api.io.TempDir;
-import org.junitpioneer.jupiter.CartesianEnumSource;
-import org.junitpioneer.jupiter.CartesianProductTest;
-import org.junitpioneer.jupiter.ClearSystemProperty;
-import org.junitpioneer.jupiter.SetSystemProperty;
-
-import org.apache.geode.benchmark.LongRange;
-import org.apache.geode.benchmark.junit.CartesianSubclassSource;
-import org.apache.geode.benchmark.junit.EnableIfClassExists;
-import org.apache.geode.benchmark.redis.tests.RedisBenchmark.RedisClientImplementation;
-import org.apache.geode.perftest.TestRunners;
-
-@EnableIfClassExists("org.apache.geode.redis.internal.GeodeRedisServer")
-public class RedisBenchmarkTest {
-
- @TempDir()
- File folder;
-
- @CartesianProductTest()
- @CartesianEnumSource(RedisClientImplementation.class)
- @CartesianSubclassSource(RedisBenchmark.class)
- @ClearSystemProperty(key = WITH_REDIS_CLIENT_PROPERTY)
- @SetSystemProperty(key = WITH_SERVER_COUNT_PROPERTY, value = "1")
- public void benchmarkRunsSuccessfully(final RedisClientImplementation redisClientImplementation,
- final Class<? extends RedisBenchmark> redisBenchmark)
- throws Exception {
- setProperty(WITH_REDIS_CLIENT_PROPERTY, redisClientImplementation.name());
-
- final RedisBenchmark test = redisBenchmark.newInstance();
- test.setKeyRange(new LongRange(0, 100));
- test.setValidationEnabled(true);
-
- TestRunners.minimalRunner(folder).runTest(test);
- }
-}
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/GeodeTopologyTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/GeodeTopologyTest.java
deleted file mode 100644
index 455bf7d..0000000
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/GeodeTopologyTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.topology;
-
-import static org.apache.geode.benchmark.redis.parameters.NettyParameters.WITH_NETTY_THREADS;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_BUCKETS;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_REPLICAS;
-import static org.apache.geode.benchmark.topology.Roles.SERVER;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.jupiter.api.Test;
-import org.junitpioneer.jupiter.ClearSystemProperty;
-import org.junitpioneer.jupiter.SetSystemProperty;
-
-import org.apache.geode.perftest.TestConfig;
-
-public class GeodeTopologyTest {
-
- @Test
- @ClearSystemProperty(key = WITH_REPLICAS)
- @ClearSystemProperty(key = WITH_BUCKETS)
- @ClearSystemProperty(key = WITH_NETTY_THREADS)
- public void setsDefaultJvmArgs() {
- final TestConfig testConfig = new TestConfig();
- GeodeTopology.configure(testConfig);
-
- assertThat(testConfig.getJvmArgs().get(SERVER.name()))
- .contains("-Denable-unsupported-commands=true", "-Dredis.replicas=1",
- "-Dredis.region.buckets=128", "-Djava.lang.Integer.IntegerCache.high=128")
- .doesNotContainSubsequence("-Dio.netty.eventLoopThreads=");
- }
-
- @Test
- @SetSystemProperty(key = WITH_REPLICAS, value = "3")
- public void setsReplicas() {
- final TestConfig testConfig = new TestConfig();
- GeodeTopology.configure(testConfig);
-
- assertThat(testConfig.getJvmArgs().get(SERVER.name())).contains("-Dredis.replicas=3");
- }
-
- @Test
- @SetSystemProperty(key = WITH_BUCKETS, value = "123")
- public void setsBuckets() {
- final TestConfig testConfig = new TestConfig();
- GeodeTopology.configure(testConfig);
-
- assertThat(testConfig.getJvmArgs().get(SERVER.name()))
- .contains("-Dredis.region.buckets=123", "-Djava.lang.Integer.IntegerCache.high=123");
- }
-
- @Test
- @SetSystemProperty(key = WITH_NETTY_THREADS, value = "3")
- public void setsNettyThreads() {
- final TestConfig testConfig = new TestConfig();
- GeodeTopology.configure(testConfig);
-
- assertThat(testConfig.getJvmArgs().get(SERVER.name()))
- .contains("-Dio.netty.eventLoopThreads=3");
- }
-
-}
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/ManualRedisTopologyTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/ManualRedisTopologyTest.java
deleted file mode 100644
index 5326607..0000000
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/ManualRedisTopologyTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.topology;
-
-import static java.net.InetSocketAddress.createUnresolved;
-import static org.apache.geode.benchmark.redis.topology.ManualRedisTopology.WITH_REDIS_SERVERS_PROPERTY;
-import static org.apache.geode.benchmark.topology.Ports.REDIS_PORT;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import org.junit.jupiter.api.Test;
-import org.junitpioneer.jupiter.ClearSystemProperty;
-import org.junitpioneer.jupiter.SetSystemProperty;
-
-import org.apache.geode.benchmark.redis.tasks.InitRedisServersAttribute;
-import org.apache.geode.perftest.TestConfig;
-import org.apache.geode.perftest.TestStep;
-
-public class ManualRedisTopologyTest {
-
- @Test
- @SetSystemProperty(key = WITH_REDIS_SERVERS_PROPERTY, value = "a")
- public void configureWithOneServer() {
- final TestConfig testConfig = new TestConfig();
- ManualRedisTopology.configure(testConfig);
- assertThat(testConfig.getBefore().stream().map(TestStep::getTask)
- .filter(InitRedisServersAttribute.class::isInstance)
- .map(InitRedisServersAttribute.class::cast)
- .findFirst()).hasValueSatisfying(t -> assertThat(t.getServers()).containsExactly(
- createUnresolved("a", REDIS_PORT)));
- }
-
- @Test
- @SetSystemProperty(key = WITH_REDIS_SERVERS_PROPERTY, value = "a;b;c")
- public void configureWithMultipleServers() {
- final TestConfig testConfig = new TestConfig();
- ManualRedisTopology.configure(testConfig);
- assertThat(testConfig.getBefore().stream().map(TestStep::getTask)
- .filter(InitRedisServersAttribute.class::isInstance)
- .map(InitRedisServersAttribute.class::cast)
- .findFirst()).hasValueSatisfying(t -> assertThat(t.getServers()).containsExactly(
- createUnresolved("a", REDIS_PORT), createUnresolved("b", REDIS_PORT),
- createUnresolved("c", REDIS_PORT)));
- }
-
- @Test
- @SetSystemProperty(key = WITH_REDIS_SERVERS_PROPERTY, value = "a:1;b:2;c:3")
- public void configureWithMultipleServersWithHostsAndPorts() {
- final TestConfig testConfig = new TestConfig();
- ManualRedisTopology.configure(testConfig);
- assertThat(testConfig.getBefore().stream().map(TestStep::getTask)
- .filter(InitRedisServersAttribute.class::isInstance)
- .map(InitRedisServersAttribute.class::cast)
- .findFirst()).hasValueSatisfying(t -> assertThat(t.getServers()).containsExactly(
- createUnresolved("a", 1), createUnresolved("b", 2),
- createUnresolved("c", 3)));
- }
-
- @Test
- @ClearSystemProperty(key = WITH_REDIS_SERVERS_PROPERTY)
- public void configureWithNoServersThrows() {
- final TestConfig testConfig = new TestConfig();
- assertThatThrownBy(() -> ManualRedisTopology.configure(testConfig))
- .isInstanceOf(IllegalArgumentException.class);
- }
-
- @Test
- @SetSystemProperty(key = WITH_REDIS_SERVERS_PROPERTY, value = "")
- public void configureWithNoEmptyThrows() {
- final TestConfig testConfig = new TestConfig();
- assertThatThrownBy(() -> ManualRedisTopology.configure(testConfig))
- .isInstanceOf(IllegalArgumentException.class);
- }
-
-}
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/RedisTopologyTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/RedisTopologyTest.java
deleted file mode 100644
index f83ef2a..0000000
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/redis/topology/RedisTopologyTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.benchmark.redis.topology;
-
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.WITH_REPLICAS;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.jupiter.api.Test;
-import org.junitpioneer.jupiter.ClearSystemProperty;
-import org.junitpioneer.jupiter.SetSystemProperty;
-
-import org.apache.geode.benchmark.redis.tasks.CreateRedisCluster;
-import org.apache.geode.perftest.TestConfig;
-import org.apache.geode.perftest.TestStep;
-
-public class RedisTopologyTest {
-
- @Test
- @ClearSystemProperty(key = WITH_REPLICAS)
- public void createRedisClusterDefaultReplicas() {
- final TestConfig testConfig = new TestConfig();
- RedisTopology.configure(testConfig);
- assertThat(testConfig.getBefore().stream().map(TestStep::getTask)
- .filter(CreateRedisCluster.class::isInstance).map(CreateRedisCluster.class::cast)
- .findFirst()).hasValueSatisfying(t -> assertThat(t.getReplicas()).isEqualTo(1));
- }
-
- @Test
- @SetSystemProperty(key = WITH_REPLICAS, value = "3")
- public void createRedisClusterSetsReplicas() {
- final TestConfig testConfig = new TestConfig();
- RedisTopology.configure(testConfig);
- assertThat(testConfig.getBefore().stream().map(TestStep::getTask)
- .filter(CreateRedisCluster.class::isInstance).map(CreateRedisCluster.class::cast)
- .findFirst()).hasValueSatisfying(t -> assertThat(t.getReplicas()).isEqualTo(3));
- }
-
-}
diff --git a/gradle/dependency-versions.properties b/gradle/dependency-versions.properties
index 7e7f35b..58be754 100644
--- a/gradle/dependency-versions.properties
+++ b/gradle/dependency-versions.properties
@@ -27,7 +27,4 @@
assertj-core.version = 3.19.0
software-amazon-awssdk.version = 2.16.60
JSON.version = 20210307
-jedis.version = 4.1.1
-lettuce.version = 6.1.1.RELEASE
classgraph.version = 4.8.105
-vavr.version = 1.0.0-alpha-4