[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15188757#comment-15188757
 ] 

Nick Hill commented on ZOOKEEPER-2384:
--------------------------------------

How about: setData (e.g. empty) to increment, setAcl to decrement. You can get 
the current count by subtracting aversion from version in the returned stat, or 
similarly query the count just by using exists()
So then Increment would also work in multi (but I don't think decrement since 
no acl)
Could be an effective hack for some use cases (avoids contention retry issue)

> Support atomic increment / decrement of znode value
> ---------------------------------------------------
>
>                 Key: ZOOKEEPER-2384
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2384
>             Project: ZooKeeper
>          Issue Type: Improvement
>            Reporter: Ted Yu
>
> Use case is to store reference count (integer type) in znode.
> It is desirable to provide support for atomic increment / decrement of the 
> znode value.
> Suggestion from Flavio:
> you can read the znode, keep the version of the znode, update the value, 
> write back conditionally. The condition for the setData operation to succeed 
> is that the version is the same that it read
> While the above is feasible, developer has to implement retry logic 
> him/herself. It is not easy to combine increment / decrement with other 
> operations using multi.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to