[infinispan-issues] [JBoss JIRA] (ISPN-5035) DeltaAware support for conditional operations

Dan Berindei (JIRA) issues at jboss.org
Tue Dec 9 10:24:39 EST 2014


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

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)


More information about the infinispan-issues mailing list