This is an automated email from the ASF dual-hosted git repository.
donalevans pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git
The following commit(s) were added to refs/heads/develop by this push:
new 4e6fa33 GEODE-9291 sorted set benchmarks - more benchmarks (#159)
4e6fa33 is described below
commit 4e6fa331ab747205e47e0c1ae9529ca91f20af4d
Author: Eric Zoerner <[email protected]>
AuthorDate: Fri Oct 29 09:43:47 2021 -0700
GEODE-9291 sorted set benchmarks - more benchmarks (#159)
- Added benchmarks for ZRangeByScore and mixed ZAdd and ZRange operations
---
.../apache/geode/benchmark/redis/tasks/HgetRedisTask.java | 2 +-
.../apache/geode/benchmark/redis/tasks/HsetRedisTask.java | 2 +-
.../geode/benchmark/redis/tasks/JedisClientManager.java | 7 ++++++-
.../geode/benchmark/redis/tasks/LettuceClientManager.java | 7 +++++++
.../geode/benchmark/redis/tasks/PrePopulateRedisHash.java | 2 +-
.../benchmark/redis/tasks/PrePopulateRedisSortedSet.java | 2 +-
.../org/apache/geode/benchmark/redis/tasks/RedisClient.java | 2 ++
.../apache/geode/benchmark/redis/tasks/ZaddRedisTask.java | 2 +-
.../{ZrangeRedisTask.java => ZrangeByScoreRedisTask.java} | 11 ++++++-----
.../apache/geode/benchmark/redis/tasks/ZrangeRedisTask.java | 2 +-
...chmark.java => RedisWeightedZaddAndZrangeBenchmark.java} | 13 +++++++++----
.../geode/benchmark/redis/tests/RedisZaddBenchmark.java | 2 --
...sZaddBenchmark.java => RedisZrangeByScoreBenchmark.java} | 9 ++++-----
13 files changed, 40 insertions(+), 23 deletions(-)
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
index 84e434e..544b101 100644
---
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
@@ -17,8 +17,8 @@
package org.apache.geode.benchmark.redis.tasks;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
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;
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
index 96b3a21..570bf8e 100644
---
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
@@ -18,8 +18,8 @@
package org.apache.geode.benchmark.redis.tasks;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
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;
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
index bb6af11..e193dbf 100644
---
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
@@ -58,7 +58,7 @@ public final class JedisClientManager implements
RedisClientManager {
}
@Override
- public long zadd(String key, double score, String value) {
+ public long zadd(String key, double score, String value) {
return jedisCluster.zadd(key, score, value);
}
@@ -68,6 +68,11 @@ public final class JedisClientManager implements
RedisClientManager {
}
@Override
+ public Set<String> zrangeByScore(String key, long start, long stop) {
+ return jedisCluster.zrangeByScore(key, start, stop);
+ }
+
+ @Override
public void flushdb() {
Set<String> seen = new HashSet<>();
for (int i = 0; i < HASHSLOTS; ++i) {
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
index 028b430..93bae98 100644
---
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
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Set;
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;
@@ -80,6 +81,12 @@ public final class LettuceClientManager implements
RedisClientManager {
}
@Override
+ public Set<String> zrangeByScore(String key, long start, long stop) {
+ return new HashSet<>(
+ redisAdvancedClusterCommands.get().zrangebyscore(key,
Range.create(start, stop)));
+ }
+
+ @Override
public void flushdb() {
redisAdvancedClusterCommands.get().flushdb();
}
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
index 14299e4..63caa03 100644
---
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
@@ -18,8 +18,8 @@
package org.apache.geode.benchmark.redis.tasks;
import static java.lang.String.valueOf;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
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;
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
index 9de9ff6..293ae92 100644
---
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
@@ -18,8 +18,8 @@
package org.apache.geode.benchmark.redis.tasks;
import static java.lang.String.valueOf;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
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;
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
index 732a332..bbd188f 100644
---
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
@@ -31,4 +31,6 @@ public interface RedisClient {
long zadd(String key, double score, String value);
Set<String> zrange(String key, long start, long stop);
+
+ Set<String> zrangeByScore(String key, long start, long stop);
}
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
index 5016c66..646cfd5 100644
---
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
@@ -18,8 +18,8 @@
package org.apache.geode.benchmark.redis.tasks;
-import static org.apache.geode.benchmark.redis.tasks.RedisSplitKey.toPart;
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;
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/ZrangeByScoreRedisTask.java
similarity index 89%
copy from
geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeRedisTask.java
copy to
geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tasks/ZrangeByScoreRedisTask.java
index 641388b..7eeb702 100644
---
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/ZrangeByScoreRedisTask.java
@@ -34,8 +34,8 @@ 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);
+public class ZrangeByScoreRedisTask extends BenchmarkDriverAdapter implements
Serializable {
+ private static final Logger logger =
LoggerFactory.getLogger(ZrangeByScoreRedisTask.class);
private final RedisClientManager redisClientManager;
private final LongRange keyRange;
@@ -44,8 +44,9 @@ public class ZrangeRedisTask extends BenchmarkDriverAdapter
implements Serializa
private transient LongStringCache keyCache;
private transient RedisClient redisClient;
- public ZrangeRedisTask(final RedisClientManager redisClientManager, final
LongRange keyRange,
- final boolean validate) {
+ public ZrangeByScoreRedisTask(final RedisClientManager redisClientManager,
+ final LongRange keyRange,
+ final boolean validate) {
logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
this.redisClientManager = redisClientManager;
this.keyRange = keyRange;
@@ -72,7 +73,7 @@ public class ZrangeRedisTask extends BenchmarkDriverAdapter
implements Serializa
.nextLong(0, RedisSplitKey.NUM_PARTS_PER_KEY - start);
final long stop = start + len;
- final Set<String> values = redisClient.zrange(key, start, stop);
+ final Set<String> values = redisClient.zrangeByScore(key, start, stop);
if (validate) {
final LongRange range =
new LongRange(start, stop);
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
index 641388b..dea41a5 100644
---
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
@@ -45,7 +45,7 @@ public class ZrangeRedisTask extends BenchmarkDriverAdapter
implements Serializa
private transient RedisClient redisClient;
public ZrangeRedisTask(final RedisClientManager redisClientManager, final
LongRange keyRange,
- final boolean validate) {
+ final boolean validate) {
logger.info("Initialized: keyRange={}, validate={}", keyRange, validate);
this.redisClientManager = redisClientManager;
this.keyRange = keyRange;
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/RedisWeightedZaddAndZrangeBenchmark.java
similarity index 75%
copy from
geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddBenchmark.java
copy to
geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisWeightedZaddAndZrangeBenchmark.java
index a4ea713..3f1da6d 100644
---
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/RedisWeightedZaddAndZrangeBenchmark.java
@@ -21,21 +21,26 @@ 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.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 RedisZaddBenchmark extends RedisBenchmark {
+public class RedisWeightedZaddAndZrangeBenchmark 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);
+
+ 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/RedisZaddBenchmark.java
b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddBenchmark.java
index a4ea713..6d3bd1f 100644
---
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
@@ -21,8 +21,6 @@ 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.benchmark.redis.tasks.PrePopulateRedisSortedSet;
import org.apache.geode.benchmark.redis.tasks.ZaddRedisTask;
import org.apache.geode.perftest.TestConfig;
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/RedisZrangeByScoreBenchmark.java
similarity index 81%
copy from
geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZaddBenchmark.java
copy to
geode-benchmarks/src/main/java/org/apache/geode/benchmark/redis/tests/RedisZrangeByScoreBenchmark.java
index a4ea713..8ec26ec 100644
---
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/RedisZrangeByScoreBenchmark.java
@@ -21,20 +21,19 @@ 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.benchmark.redis.tasks.PrePopulateRedisSortedSet;
-import org.apache.geode.benchmark.redis.tasks.ZaddRedisTask;
+import org.apache.geode.benchmark.redis.tasks.ZrangeByScoreRedisTask;
import org.apache.geode.perftest.TestConfig;
-public class RedisZaddBenchmark extends RedisBenchmark {
+public class RedisZrangeByScoreBenchmark extends RedisBenchmark {
@Override
public TestConfig configure() {
final TestConfig config = super.configure();
before(config, new PrePopulateRedisSortedSet(redisClientManager,
keyRange), CLIENT);
- workload(config, new ZaddRedisTask(redisClientManager, keyRange),
+ workload(config,
+ new ZrangeByScoreRedisTask(redisClientManager, keyRange,
isValidationEnabled()),
CLIENT);
return config;
}