This is an automated email from the ASF dual-hosted git repository. upthewaterspout pushed a commit to branch feature/redis-performance-testing in repository https://gitbox.apache.org/repos/asf/geode.git
commit dc5ece083bcbe1c1e75cf324c1250c88a7ea1f9a Author: Jens Deppe <[email protected]> AuthorDate: Wed Feb 24 16:01:56 2021 -0800 Fix partition calculation --- .../src/main/java/org/apache/geode/redis/internal/RegionProvider.java | 1 + .../java/org/apache/geode/redis/internal/data/ByteArrayWrapper.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/geode-redis/src/main/java/org/apache/geode/redis/internal/RegionProvider.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RegionProvider.java index a8cd6c8..20c9dc3 100644 --- a/geode-redis/src/main/java/org/apache/geode/redis/internal/RegionProvider.java +++ b/geode-redis/src/main/java/org/apache/geode/redis/internal/RegionProvider.java @@ -31,6 +31,7 @@ public class RegionProvider { public static final String REDIS_CONFIG_REGION = "__REDIS_CONFIG"; public static final int REDIS_REGION_BUCKETS = Integer.getInteger("redis.region.buckets", 128); public static final int REDIS_SLOTS = Integer.getInteger("redis.slots", 16384); + public static final int REDIS_SLOTS_PER_BUCKET = REDIS_SLOTS / REDIS_REGION_BUCKETS; private final Region<ByteArrayWrapper, RedisData> dataRegion; private final Region<String, Object> configRegion; diff --git a/geode-redis/src/main/java/org/apache/geode/redis/internal/data/ByteArrayWrapper.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/data/ByteArrayWrapper.java index b24d5a6..ba1b409 100755 --- a/geode-redis/src/main/java/org/apache/geode/redis/internal/data/ByteArrayWrapper.java +++ b/geode-redis/src/main/java/org/apache/geode/redis/internal/data/ByteArrayWrapper.java @@ -17,6 +17,7 @@ package org.apache.geode.redis.internal.data; import static org.apache.geode.redis.internal.RegionProvider.REDIS_REGION_BUCKETS; import static org.apache.geode.redis.internal.RegionProvider.REDIS_SLOTS; +import static org.apache.geode.redis.internal.RegionProvider.REDIS_SLOTS_PER_BUCKET; import java.io.DataInput; import java.io.DataOutput; @@ -119,7 +120,7 @@ public class ByteArrayWrapper */ public synchronized Object getRoutingId() { if (routingId == null) { - routingId = (CRC16.calculate(value) % REDIS_SLOTS) % REDIS_REGION_BUCKETS; + routingId = (CRC16.calculate(value) % REDIS_SLOTS) / REDIS_SLOTS_PER_BUCKET; } return routingId;
