[jbosscache-dev] Re: Non Blocking State Transfer Status (& Integration with JGroups)
Jason T. Greene
jason.greene at redhat.com
Wed Jan 7 12:21:53 EST 2009
Bela Ban wrote:
>
>
> Jason T. Greene wrote:
>>
>>> Also, I may be wrong but I believe the UNICAST and NAKACK locks are
>>> separate, so a thread carrying a unicast state transfer message from
>>> node A will not block on recipient B because a multicast replication
>>> message from A is being handled by another thread.)
>>>
>>
>> I am not too worried about the locking, although that is a factor, but
>> more about a multicast configuration, where you have state transfer
>> traffic for N transfers hitting the multicast address. Even if
>> everyone discards the traffic, it still has to be processed in java
>> land, and it will be alot of traffic.
>
> Why the multicast address ? State transfer should be between 2 nodes, a
> provider and a requester, so it should always be unicast. If we bring
> partial flush into the mix, where we block only the 2 participants in
> the state transfer, then we should be OK. Not sure if we should do a
> partial or a full flush though...
Ah! There is my disconnect. I somehow had it in my head that the jgroups
UDP transport used a multicast socket for everything, and that UNICAST
packets where just emulated on top of that. I should have looked at the
code. That pretty much eliminates my concern. Although IMO a bare tcp
connection would still be the most optimal form of transferring large
state to a single node since the kernel and the hardware is doing all
the work. That can be saved for a future optimization though ;)
--
Jason T. Greene
JBoss, a division of Red Hat
More information about the jbosscache-dev
mailing list