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;
   }

Reply via email to