[infinispan-dev] [jgroups-dev] StressTest: Can JGroups provide a callback to do marshalling after real_dests have been calculated?

Galder Zamarreno galder at redhat.com
Thu Oct 29 11:36:41 EDT 2009


Sure, I'll do it in a sec.

Manik FYI, I'm gonna revert the changes for 
https://jira.jboss.org/jira/browse/ISPN-237.

On 10/29/2009 04:32 PM, Bela Ban wrote:
> Sure, why don't you create a JIRA (for 2.9) ?
>
> Galder Zamarreno wrote:
>> Hi Bela & co,
>>
>> While investigating your stress test, I've found a few interesting
>> things. I'm gonna split in 2 emails:
>>
>> 1.- First of all, a week ago filled
>> https://jira.jboss.org/jira/browse/ISPN-237 jira in order for dist
>> commands that should only affect the local machine not to go remove.
>> While investigating your stress test, I've found out that JGroups'
>> MessageDispatcher.castMessage already does that!
>>
>> if(tmp != null && tmp.getOpt(Channel.LOCAL).equals(Boolean.FALSE)) {
>> if(local_addr == null) {
>> local_addr=tmp.getAddress();
>> }
>> if(local_addr != null) {
>> real_dests.removeElement(local_addr);
>> }
>> }
>>
>> That code empties the real_dests if the target is the local address.
>> So, you're probably wondering why I filled
>> https://jira.jboss.org/jira/browse/ISPN-237? It's because marshalling
>> happens before the code above gets executed. In fact, it happens at
>> the beginning of ReplicationTask.call() and the JGroups optimization
>> happens when castMessage() is called from ReplicationTask.call().
>>
>> So, I think my fix for https://jira.jboss.org/jira/browse/ISPN-237 is
>> not optimal. JGroups already knows when the call should stay local, so
>> ISPN should need to do this calculation again, it's wasteful code. The
>> real fix would be to somehow be able to do marshalling only if the
>> code in MessageDispatcher.castMessage() said that real_dests was not
>> empty.
>>
>> Bela, do you think JGroups could be enhanced to have a callback after
>> the code shown above where we can invoke marshalling?
>>
>> Cheers,
>

-- 
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache



More information about the infinispan-dev mailing list