ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roman Shtykh (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-4244) Redis INCR/DECR to operate on AtomicLong.
Date Sat, 19 Nov 2016 03:25:58 GMT

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

Roman Shtykh edited comment on IGNITE-4244 at 11/19/16 3:25 AM:
----------------------------------------------------------------

[~anovikov] Andrey, I was looking at INCR/DECR implementation, and looks like I got it wrong.

I thought that I can put a value and then increment/decrement it, but it appears that this
operations are done on {{IgniteAtomicLong}} and cannot be accessed by put or get operation
(memcached and rest implemetations also have this limitation).
The value of atomic long can be known only on return of increment/decrement operation.

i.e., you can do
{code}
client.put("key")

client.increment("key")

client.get("key")
{code}

but key's value you access with {{get}} won't be incremented, because it is not the atomic
long you do increment.
This is my understanding.

Therefore, I changed the implementation of these Redis commands. It is not exactly what a
user expects but this is how rest is implemented.
Also, it does not change the increment/decrement behavior we have now, it just removed the
code that is not really needed.

Can you please have a look?



was (Author: roman_s):
[~anovikov] Andrey, I was looking at INCR/DECR implementation, and looks like I got it wrong.

I thought that I can put a value and then increment/decrement it, but it appears that this
operations are done on {{IgniteAtomicLong}} and cannot be accessed by put or get operation
(memcached and rest implemetations also have this limitation).
The value of atomic long can be known only on return of increment/decrement operation.

i.e., you can do
{code}
client.put("key")

client.increment("key")

client.get("key")
{code}

but key's value you access with {{get}} won't be incremented, because it is not the atomic
long you do increment.
This is my understanding.

Therefore, I changed the implementation of these Redis commands. It is not exactly what a
user expects but this is how rest is implemented.

Can you please have a look?


> Redis INCR/DECR to operate on AtomicLong.
> -----------------------------------------
>
>                 Key: IGNITE-4244
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4244
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Roman Shtykh
>            Assignee: Roman Shtykh
>              Labels: redis
>             Fix For: 1.8
>
>
> "The INCR command parses the string value as an integer, increments it by one, and finally
sets the obtained value as the new value. " 
> http://redis.io/topics/data-types-intro



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

Mime
View raw message