[ https://issues.apache.org/jira/browse/GEODE-7828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17050622#comment-17050622 ]
ASF subversion and git services commented on GEODE-7828: -------------------------------------------------------- Commit 2f6bf013368df5a4b5efe68162a4953f9a88bbf2 in geode's branch refs/heads/develop from Jens Deppe [ https://gitbox.apache.org/repos/asf?p=geode.git;h=2f6bf01 ] GEODE-7828: Convert backing store for Redis Hashes and Sets to single regions (#4745) * GEODE-7828: Convert backing store for Redis Hashes and Sets to single regions This PR builds on the work originally submitted by Greg Green in https://github.com/apache/geode/pull/404. Also acknowledgements to Galen O'Sullivan for addressing locking issues in that PR. This commit changes the storage model of Redis hashes and sets from one region per each Redis key to a single hash region and single set region. The Redis key is now also the region key and the data is stored in a Map and Set respectively in the region. Currently, the backing values do not implement Delta changes, however this will be a future optimization. This also fixes the inability of Redis keys to contain other characters commonly used, such as colons (':'). - Add `RedisLockService` which manages a lock per key within a single JVM. Locks are held in a WeakHasMap to allow for automatic cleanup (prior PR work, using a pure ConcurrentHashMap, ended up leaking memory since there is no straight-forward way to clean up unused keys/locks). - Add new tests including concurrency tests for hashes and sets Co-authored-by: Greg Green <ggr...@pivotal.io> Co-authored-by: Ray Ingles <ring...@pivotal.io> Co-authored-by: Sarah Abbey <sab...@pivotal.io> Co-authored-by: John Hutchison <jhutchi...@pivotal.io> Co-authored-by: Murtuza Boxwala <mboxw...@pivotal.io> Co-authored-by: Prasath Durairaj <prasa...@pivotal.io> Co-authored-by: Jens Deppe <jde...@pivotal.io> > Convert backing store for Redis Hashes and Sets to single regions > ----------------------------------------------------------------- > > Key: GEODE-7828 > URL: https://issues.apache.org/jira/browse/GEODE-7828 > Project: Geode > Issue Type: Improvement > Components: redis > Reporter: Jens Deppe > Assignee: Jens Deppe > Priority: Major > Time Spent: 1h > Remaining Estimate: 0h > > Currently the Redis adapter creates separate regions for each new hash or > set. This can be a significant performance impact when many hashes are being > created. In addition, hashes are conventionally often named with colons (':') > in their name - for example {{user:1000}}. This does not work as region names > cannot contain colons. > The work here will create a single region for hashes and a single region for > sets. -- This message was sent by Atlassian Jira (v8.3.4#803005)