You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/05/27 20:11:00 UTC

[jira] [Commented] (GEODE-9279) Make redis deltas implement Sizeable

    [ https://issues.apache.org/jira/browse/GEODE-9279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17352726#comment-17352726 ] 

ASF subversion and git services commented on GEODE-9279:
--------------------------------------------------------

Commit c6d1da1059328daa0731d8493146152bb6a99594 in geode's branch refs/heads/develop from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=c6d1da1 ]

GEODE-9222: Remove ByteArrayWrapper from RedisSet (#6487)

 - Replace uses of ByteArrayWrapper with byte[] in RedisSet,
 NullRedisSet and other Set-related classes
 - Replace internal Set in RedisSet with fastutil
 ObjectOpenCustomHashSet
 - Replace the membersAddAll and membersRemoveAll methods with looped
 calls to membersAdd and membersRemove, as ObjectOpenCustomHashSet does
 not implement removeAll, which causes errors when comparing
 the contents of Sets
 - Change implementation of sunionstore, sinterstore and sdiffstore to
 correctly use ObjectOpenCustomHashSet
 - Moving the set commands executor to a shared object rather than
 allocating it for each operation
 - Replace uses of collection implementations with interfaces where possible
 - Make RedisSet.smembers() public, similar to RedisHash.hkeys() and
 RedisHash.hvalue()
 - Change RedisSet.toString to be in line with other Redis classes
 - These changes break the sizing tests, but these tests have been
 determined to be inconsistent due to the current implementation of
 sizeable in RedisSet. GEODE-9279 will address the issues with sizeable
 in a future commit
 - These changes break backwards compatibility with Geode 1.14.0

Authored-by: Donal Evans <do...@vmware.com>

> Make redis deltas implement Sizeable
> ------------------------------------
>
>                 Key: GEODE-9279
>                 URL: https://issues.apache.org/jira/browse/GEODE-9279
>             Project: Geode
>          Issue Type: Improvement
>          Components: redis
>    Affects Versions: 1.15.0
>            Reporter: Hale Bales
>            Assignee: Donal Evans
>            Priority: Major
>             Fix For: 1.15.0
>
>
> In order for rebalances to work correctly, we must keep track of a close estimate of the amount of data that we have. RedisString, RedisSet, and RedisHash all inherit from RedisData, which implements Sizeable already. The current calculations for set and hash are approximately correct, but do not take into account the size of the delta that gets created when the data is stored. In order to account for that additional overhead, the delta must also implement Sizeable and keep track of its size. This will allow us to be much more accurate in our calculations of bytes in use for Set and String, potentially exactly accurate.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)