[infinispan-dev] Distribution across multiple sites

Bela Ban bban at redhat.com
Wed Jan 11 04:33:50 EST 2012


Hi Manik,

On 1/10/12 7:02 PM, Manik Surtani wrote:
> Sorry for the late response on this thread.
>
> I think solution #2 is overkill - this could be a huge bottleneck.  Something like solution #1 will work, but that's still expensive (in terms of memory consumption, and consequently GC).


Yes


> Are the communications between relay coordinators (RC) asynchronous?


Yes, everything is asynchronous. Synchronous constructs, such as RPCs, 
are then run over this async 'transport'. This is the same model JGroups 
has in a purely local cluster.

Bridging is done at the transport; this can be compared to a switch, 
bridging subnets: whenever the switch is down, any IP packets sent 
during this time are not forwarded to the other subnet and a higher-up 
layer has to do repair. TCP for instance does this, whereas UDP doesn't.


>   I realise the communication is not on the critical path of a 
transaction in either data centre, but it could still be sync.  If this 
were the case, we could  have something like this:

That would slow things down though ! Plus, it would require an ack, so 
that's additional traffic (not much though). The big issue here is that 
latency is usually high between sites, so the round trip time would kill 
us !


> Assume {A, B, C} and {X, Y, Z}.  A -->  X synchronously, but offline (in a separate thread) so calling transactions aren't blocked.  Assume key K is on {A, B, Z}.  A change to K would synchronously update A and B, and put the update on the RC (and backup RC)'s processing queue.  A then flushes to X, and on receiving the ack from X, informs B that the message was delivered.  If X crashes/doesn't ack, A keeps retrying, potentially batching queued updates.

While this could certainly be done, what happens if X itself crashes ?

Also, I recall you sending the update for K as 3 unicasts: 1 to A, 1 to 
B and 1 to Z. The one to Z is relayed by A to X, and sent from X to Z.


> WDYT?
>
> Cheers
> Manik
>
> On 14 Dec 2011, at 11:51, Bela Ban wrote:
>
>> Tobias made me aware of a bug that can happen when we use RELAY and one
>> of the relay coordinators crash: messages sent between the crash of the
>> relay coordinator and the switch of the backup relay to full relay are
>> not relayed.
>>
>> This can lead to inconsistencies, see [1] for details. If I implement
>> solution #1, then the chances of this happening are vastly reduced.
>>
>> I wanted to ask the bright folks on this list though, if you see a
>> solution that only involves Infinispan (rebalancing) ?
>> Cheers,
>>
>> [1] https://issues.jboss.org/browse/JGRP-1401
>>
>> --
>> Bela Ban

-- 
Bela Ban
Lead JGroups (http://www.jgroups.org)
JBoss / Red Hat


More information about the infinispan-dev mailing list