-
Notifications
You must be signed in to change notification settings - Fork 683
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 #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 <ggreen@pivotal.io> Co-authored-by: Ray Ingles <ringles@pivotal.io> Co-authored-by: Sarah Abbey <sabbey@pivotal.io> Co-authored-by: John Hutchison <jhutchison@pivotal.io> Co-authored-by: Murtuza Boxwala <mboxwala@pivotal.io> Co-authored-by: Prasath Durairaj <prasathd@pivotal.io> Co-authored-by: Jens Deppe <jdeppe@pivotal.io>
- Loading branch information
1 parent
4b06a7a
commit 2f6bf01
Showing
138 changed files
with
4,334 additions
and
1,228 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.