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)