[infinispan-issues] [JBoss JIRA] Commented: (ISPN-317) when unsafeReturnValues is false, combine put, remove, replace, putIfAbsent, to pull back responses in 1 command

Galder Zamarreno (JIRA) jira-events at lists.jboss.org
Tue Jul 13 12:54:59 EDT 2010


    [ https://jira.jboss.org/browse/ISPN-317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12539030#action_12539030 ] 

Galder Zamarreno commented on ISPN-317:
---------------------------------------

I had a closer look into this and I'm not sure doing it for CR2 would be a good thing since it seems to me that it'd require a bit of refactoring. First of all, optimising into one operation could only be done when unsafeReturnValues is false and the command is not conditional.

Currently DistributionInterceptor sends a ClusteredGetCommand per each key to lookup. Multiple keys could be affected for example if PutMap was called. So, any single call will have to be a MultipleRpcCommand that contains all the CGCs commands plus the write command.

Now, the problem here is that MultipleRpcCommand.perform simply executes the commands and always returns null. So the return of those clustered gets would be lost. It would require some kind of refactoring involving returning a List<List<Response>> where for each node, we get a list of responses for each of the ops executed locally. However, RpcManagerImpl seems to assume List<Response> all around, so, it looks to me this change would require a fair bit of refactoring and I don't think we should be doing it for 4.1.0.CR2.

Mircea, if you had a different idea, let me know. For the moment I'm reassigning it to you and setting fix version to 5.1.0.Beta1.

> when unsafeReturnValues is false, combine put, remove, replace, putIfAbsent, to pull back responses in 1 command
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: ISPN-317
>                 URL: https://jira.jboss.org/browse/ISPN-317
>             Project: Infinispan
>          Issue Type: Feature Request
>            Reporter: Mircea Markus
>            Assignee: Galder Zamarreno
>             Fix For: 4.1.0.CR2
>
>
> at the moment this is split in two operations: a remote get followed by an put. Optimize this to only reside in one operation.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the infinispan-issues mailing list