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

Manik Surtani manik at jboss.org
Thu Oct 29 11:47:08 EDT 2009


I reckon don't revert 237 until we have this implemented in JGroups...


On 29 Oct 2009, at 15:36, Galder Zamarreno wrote:

> 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
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Manik Surtani
manik at jboss.org
Lead, Infinispan
Lead, JBoss Cache
http://www.infinispan.org
http://www.jbosscache.org








More information about the infinispan-dev mailing list