You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (JIRA)" <ji...@apache.org> on 2016/03/18 22:24:33 UTC

[jira] [Resolved] (CASSANDRA-5200) Add a way to cancel TTL on a column (without changing value)

     [ https://issues.apache.org/jira/browse/CASSANDRA-5200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksey Yeschenko resolved CASSANDRA-5200.
------------------------------------------
    Resolution: Won't Fix

The raciness you mention is inherent to this approach. If you move the read before write to the server, C* being a distributed system, you just move the race to C* itself. This cannot - easily - be done without imposing coordination/locking, which is an anti-pattern in C*.

Closing as Won't Fix.

> Add a way to cancel TTL on a column (without changing value)
> ------------------------------------------------------------
>
>                 Key: CASSANDRA-5200
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5200
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Anentropic
>            Priority: Minor
>              Labels: ponies
>
> Currently you can set TTL on a column value:
>     UPDATE table USING TTL 30 SET col1='test' WHERE id=123;
> The only way to cancel the TTL, so that col1='test' doesn't expire, is to set col1 to a new value.
> If you want col1 to keep its current value but stop expiring I don't see a reliable way. You (understandably) can't do:
>     UPDATE table SET col1=col1 WHERE id=123;
> And obviously if you have to SELECT the value first you have a race condition.
> I understand the reasons for not allowing SET col1=col1 but I'm guessing it wouldn't be too hard to allow some way to cancel the TTL without having to set a value?



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