[
https://issues.apache.org/jira/browse/GEODE-8130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17107686#comment-17107686
]
ASF GitHub Bot commented on GEODE-8130:
---------------------------------------
dschneider-pivotal commented on a change in pull request #5067:
URL: https://github.com/apache/geode/pull/5067#discussion_r425438297
##########
File path:
geode-redis/src/main/java/org/apache/geode/redis/internal/GeodeRedisServer.java
##########
@@ -437,18 +422,16 @@ private void startGemFire() {
}
@VisibleForTesting
- public RegionProvider getRegionCache() {
- return regionCache;
+ public RegionProvider getRegionProvider() {
Review comment:
Most of the RegionProvider is about managing dynamic regions for lists
and sorted sets. If we would change those data structures to be more like our
RedisSet then I think the RegionProvider might be able to go away. However it
still might make sense to have it to give us the single data region. And it
might be helpful in the future if we have a region per DB.
The work on this branch has more to do with getting rid of the KeyRegistrar.
Once all of our data types are converted over to just use the new DataRegion,
then I think we will find that no code uses the KeyRegistrar methods anymore.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Change the way redis uses geode regions to save memory and fix race conditions
> ------------------------------------------------------------------------------
>
> Key: GEODE-8130
> URL: https://issues.apache.org/jira/browse/GEODE-8130
> Project: Geode
> Issue Type: Improvement
> Components: redis
> Reporter: Darrel Schneider
> Assignee: Darrel Schneider
> Priority: Major
>
> Currently the geode redis implementation uses a replicate region to hold
> every redis key as the region key (as a String object) and the region value
> is an enum describing the type. Another partitioned regioni is used to also
> store the redis key as the region key (as a ByteArrayWrapper object) and the
> region value is an object that is basically a Set or HashMap.
> This uses extra memory, the replicate does not scale well, is slower
> (updating two regions is slower than one region), and trying to update two
> regions to hold the same logical redis "key" has race conditions which can
> lead to inconsistent data.
> The solution is to have a single partitioned region that can hold multiple
> types of data (sets, hashes, strings, lists, etc).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)