You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Igor Barchak <Ig...@amdocs.com> on 2018/01/22 07:38:08 UTC

Rebalancing on jvm recovery

Hi



Can you please advise how rebalancing works in case of jvm recovery?

In case we have two hosts each separate redundancy zone , number of redundant copies configured to be 1, and following configuration for jvm start

                                Dgemfire.DELTAS_RECALCULATE_SIZE=true
                                Dgemfire.MAX_PARALLEL_BUCKET_RECOVERIES=4


On restart of one of the jvms , as it rejoin the grid , we see


1)      It does not receive responsibility for buckets that are empty at the time of recovery. Is this as designed, and can it be changed by configuration

2)      In recovery flow , and after running rebalance , we see that responsibility that the jvm receives is balanced by total buckets  size (Primary + Redundant) but by Total primary buckets zize and Total redundant buckets size is not balanced separately. Is this as designed , and can it be changed by configuration


Thanks and Regards
Igor

This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement,

you may review at https://www.amdocs.com/about/email-disclaimer <https://www.amdocs.com/about/email-disclaimer>

Re: Rebalancing on jvm recovery

Posted by Dan Smith <ds...@pivotal.io>.
Hi Igor,

For your first question, redundancy recovery by default starts
happening ansynchronously after your member starts up. So I would
expect if you wait long enough you will see the full redundancy is
restored. You can control this behavior with the
startup-recovery-delay setting.

For your second question - geode balances to the total amount of data
on each member. So I would expect that if you look at the stats, each
nodes dataStoreBytesInUse will be fairly similar. Which bucket is
primary is balanced by the number of primaries on each member. So the
total number of primary buckets on each member should be fairly
similar.

Rebalancing is weighted by the local-max-memory setting on each
member. local-max-memory defaults to the heap size. So if your
different members have different local-max-memory settings or
different heap sizes the members with a higher local-max-memory will
get more data.

-Dan

On Sun, Jan 21, 2018 at 11:38 PM, Igor Barchak <Ig...@amdocs.com> wrote:
> Hi
>
>
>
> Can you please advise how rebalancing works in case of jvm recovery?
>
> In case we have two hosts each separate redundancy zone , number of redundant copies configured to be 1, and following configuration for jvm start
>
>                                 Dgemfire.DELTAS_RECALCULATE_SIZE=true
>                                 Dgemfire.MAX_PARALLEL_BUCKET_RECOVERIES=4
>
>
> On restart of one of the jvms , as it rejoin the grid , we see
>
>
> 1)      It does not receive responsibility for buckets that are empty at the time of recovery. Is this as designed, and can it be changed by configuration
>
> 2)      In recovery flow , and after running rebalance , we see that responsibility that the jvm receives is balanced by total buckets  size (Primary + Redundant) but by Total primary buckets zize and Total redundant buckets size is not balanced separately. Is this as designed , and can it be changed by configuration
>
>
> Thanks and Regards
> Igor
>
> This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement,
>
> you may review at https://www.amdocs.com/about/email-disclaimer <https://www.amdocs.com/about/email-disclaimer>