[infinispan-dev] Asymmetric caches and manual rehashing design
Bela Ban
bban at redhat.com
Thu Sep 29 16:18:08 EDT 2011
Yes, the idea was to have a bunch of conditions ORed together, so if one
of them was true a rebalance would occur.
E.g.:
- Try to see if a rebalance is needed every 5 seconds. When there's a
view change, reset the timer, so it'll fire 5 secs from now. This would
prevent rebalancing to happen in a high churn period, e.g. when 10 nodes
join
- When N JOINs have been received
- When M LEAVES have been received
- On a MERGE
On 9/29/11 6:14 PM, Mircea Markus wrote:
>
> On 29 Sep 2011, at 08:06, Bela Ban wrote:
>
>>
>>
>> On 9/28/11 4:24 PM, Mircea Markus wrote:
>>> Nice stuff.
>>>
>>> Some q:
>>>
>>> - When a node CM that has c1 and c2 caches running on it goes down, you'll end up having REQUEST_LEAVE(c1) and REQUEST_LEAVE(c2) at the same time. Is this handled in serial or in parallel?
>>
>>
>> I don't think any requests should be sent in this case: the current
>> coordinator should add the LEAVE(s) into its queue, as if it indeed did
>> receive 2 LEAVE requests. This may or may not lead to rebalance,
>> depending on the rebalance policy (e.g. JOINS are queued, but LEAVES and
>> MERGES trigger a rebalance immediately).
> Makes sense.
> On a side note, I only see a point in having LEAVES policy set to QUEUE (vs immediate) if there's an controlled system shutdown. Otherwise the JOINS should be handled on an immediate bases: that's in order to quickly react to topology node crashes. So IMO we also need the hooks to switch between IMMEDIATE vs QUEUE policy at runtime.
--
Bela Ban
Lead JGroups (http://www.jgroups.org)
JBoss / Red Hat
More information about the infinispan-dev
mailing list