[
https://jira.jboss.org/browse/ISPN-317?page=com.atlassian.jira.plugin.sys...
]
Galder Zamarreno edited comment on ISPN-317 at 7/12/10 10:05 AM:
-----------------------------------------------------------------
Apart from when unsafeReturnValues is false, you also need to check do this when
unsafeUnreliableReturnValues is true, we are in a TX and the command is conditional.
Also, I wonder whether you'll need to maintain two ops as well when conditional
operations are in used in general. The reason is that DI tries to apply the change locally
first, so if a particular node might not have the latest values in memory. So, if you
didn't do the remote get, putIfAbsent calls could succeed assuming a particular node
was not in memory but another member in the cluster had it. By doing the remote get first,
it would have found the value and would not have allowed the op. Similar thing happens
with a conditional replace based on previous value. If the previous value is not present
locally, without the remote get it would not be brought and hence you wouldn't be able
to guarantee that the operation will work as expected.
was (Author: galder.zamarreno(a)jboss.com):
Apart from when unsafeReturnValues is false, you also need to check do this when
unsafeUnreliableReturnValues is true, we are in a TX and the command is conditional.
Also, I wonder you'll need to maintain two ops as well when conditional operations are
in used in general. The reason is that DI tries to apply the change locally first, so if a
particular node might not have the latest values in memory. So, if you didn't do the
remote get, putIfAbsent calls could succeed assuming a particular node was not in memory
but another member in the cluster had it. By doing the remote get first, it would have
found the value and would not have allowed the op. Similar thing happens with a
conditional replace based on previous value. If the previous value is not present locally,
without the remote get it would not be brought and hence you wouldn't be able to
guarantee that the operation will work as expected.
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