[
https://issues.jboss.org/browse/ISPN-5035?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-5035:
------------------------------------
I believe if the cache is not transactional DeltaAware isn't atomic either, unless the
applying the Delta is an idempotent operation (as is the case with AtomicHashMap).
Incrementing a counter is definitely not an idempotent operation...
Can you expand a bit on how you expect {{cache.replace(key, deltaAwareExpectedValue,
deltaAwareNewValue)}} to work?
DeltaAware support for conditional operations
---------------------------------------------
Key: ISPN-5035
URL:
https://issues.jboss.org/browse/ISPN-5035
Project: Infinispan
Issue Type: Feature Request
Components: Core
Reporter: Radim Vansa
Current delta-aware approach is implemented only in PutKeyValueCommand and
ApplyDeltaCommand. This implementation does not allow to execute conditional delta-aware
commands - or rather it does not allow to return any kind of value (the condition itself
can be implemented inside the delta).
One use-case when this would be required is equivalent of AtomicLong.getAndIncrement().
Currently we can implement this using
{code}
Long previous;
do {
previous = cache.get(key);
} while (cache.replace(key, previous, previous + 1);
{code}
which requires at least two RPCs. With more generic interface, such as JCache's
EntryProcessor this could be implemented using single RPC.
(so, this JIRA is basically a request to native support for EntryProcessor)
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)