[infinispan-dev] 3 nodes problem

Manik Surtani manik at jboss.org
Thu Sep 24 11:59:12 EDT 2009


On 24 Sep 2009, at 16:39, Mircea Markus wrote:

>
> On Sep 24, 2009, at 12:42 PM, Galder Zamarreno wrote:
>
>> Hi guys,
>>
>> I'm forwarding here some logs sent to me by Marcin. This is related  
>> to the following Infinispan user forum post:
>>
>> http://www.jboss.org/index.html?module=bb&op=viewtopic&t=161077
>>
>> Addition of big maps with DIST seems to be taking too long. Even  
>> adding map of 1000 pairs takes a long time:
>>
>> infinispan_osoz.log:
>>
>> 2009-09-18 12:15:03,171 TRACE  
>> [org.infinispan.interceptors.InvocationContextInterceptor] (main)  
>> Invoked with command PutMapCommand{map={a548=b548...
>> ...
>> 2009-09-18 12:15:59,500 TRACE  
>> [org.infinispan.remoting.rpc.RpcManagerImpl] (main) osoz- 
>> fd029efaa5-53570 broadcasting call PutMapCommand{map={a548=b548
>> ..
>> 2009-09-18 12:15:59,750 TRACE  
>> [org.infinispan.remoting.rpc.RpcManagerImpl] (main) responses= 
>> [SuccessfulResponse, SuccessfulResponse]
>>
>> It takes almost 1 minute to send a map of 1000 pairs. This seems  
>> (note: having done a deep dive on the log) to be due to individual  
>> key remote get operations across the cluster.
>>
>> An operation of 10000 pairs took so long that user abandoned it.
>>
>> Now, if we got a put map of 10000 pairs, instead of doing a  
>> remoteGetBeforeWrite for each key. Why don't we figure out the  
>> group of keys that do requite a remote get and group them all in  
>> single ClusteredGetCommand for all those keys? That would reduce  
>> the number of RPCs ops from N, where N is the number of keys  
>> requiring a remote get down, to 1.
> I'm not sure this would work for users that need to use the  
> previously existing values.
> e.g.
> Object oldValueIDefentlyNeedToKnow = cache.put(k,v);
> If they don't I remember there was a setting that didn't perform the  
> remote get, Manik?

Yes you can suppress the remote get with a flag, but lets first think  
about why we need a remote get at all for PutMapCommand.  We need it  
for PutKeyValueCommand since we return the old value.  We need it for  
RemoveCommand since we return the old value. Etc.  But for  
PutMapCommand?!? Hmm...

cc'ing Infinispan-dev, BTW.
--
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