You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2021/03/16 18:54:43 UTC

[geode] 10/36: Fix partition calculation

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 <jd...@vmware.com>
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;