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

Aleksey Yeschenko commented on CASSANDRA-6532:
----------------------------------------------

It's not 'hard to fix' - it's a fundamental limitation. As I said before, 
deletes do not commute.

bq. Minimally, it should throw an error if you're not going to fix it....

Can't be done, either, since it would require a non-local read before a counter 
write, which is a no-go.

There are basically only two options: 1) allow deletes, but, once deleted, make 
counters non-reusable and 2) don't allow deletes at all.

We've chosen 2).

> Deleting and re-adding counter causes null count value.
> -------------------------------------------------------
>
>                 Key: CASSANDRA-6532
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6532
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>         Environment: cqlsh 4.1.0 | Cassandra 2.0.3 | CQL spec 3.1.1 | Thrift 
> protocol 19.38.0
>            Reporter: Gregory Ramsperger
>              Labels: counters
>
> After a specific counter has been deleted, recreating a new counter with the 
> same key causes the value to be permanently null.
> {noformat}
> cqlsh:demo> create table DemoCounter ( pk  text primary key, cnt counter );
> cqlsh:demo> update DemoCounter set cnt = cnt + 1 where pk = 'foo';
> cqlsh:demo> select * from DemoCounter;
>  pk  | cnt
> -----+-----
>  foo |   1
> (1 rows)
> cqlsh:demo> delete from DemoCounter where pk = 'foo';
> cqlsh:demo> select * from DemoCounter;
> (0 rows)
> cqlsh:demo> update DemoCounter set cnt = cnt + 1 where pk = 'foo';
> cqlsh:demo> select * from DemoCounter;
>  pk  | cnt
> -----+------
>  foo | null
> (1 rows)
> cqlsh:demo>
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to