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 77aff20d4e1eb054278ab908a75e9c98619524bb Author: Jens Deppe <[email protected]> AuthorDate: Thu Feb 25 15:39:25 2021 -0800 HACK - short circuit RedisString.get call to use getValueInVM --- .../string/RedisStringCommandsFunctionInvoker.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/RedisStringCommandsFunctionInvoker.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/RedisStringCommandsFunctionInvoker.java index 79b6cd2..1e5606b 100644 --- a/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/RedisStringCommandsFunctionInvoker.java +++ b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/string/RedisStringCommandsFunctionInvoker.java @@ -36,10 +36,14 @@ import static org.apache.geode.redis.internal.RedisCommandType.STRLEN; import java.math.BigDecimal; import java.util.List; +import org.apache.geode.cache.EntryNotFoundException; import org.apache.geode.cache.Region; +import org.apache.geode.internal.cache.PartitionedRegion; +import org.apache.geode.internal.cache.VMCachedDeserializable; import org.apache.geode.redis.internal.data.ByteArrayWrapper; import org.apache.geode.redis.internal.data.RedisData; import org.apache.geode.redis.internal.data.RedisKey; +import org.apache.geode.redis.internal.data.RedisString; import org.apache.geode.redis.internal.executor.RedisCommandsFunctionInvoker; /** @@ -61,6 +65,17 @@ public class RedisStringCommandsFunctionInvoker extends RedisCommandsFunctionInv @Override public ByteArrayWrapper get(RedisKey key) { + Object v = null; + try { + v = ((PartitionedRegion) region).getValueInVM(key); + } catch (EntryNotFoundException ignored) { + } + + if (v != null) { + Object cached = ((VMCachedDeserializable) v).getDeserializedForReading(); + return ((RedisString) cached).get(); + } + return invokeCommandFunction(key, GET); }
