[
https://issues.apache.org/jira/browse/CASSANDRA-5762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13868741#comment-13868741
]
Sylvain Lebresne commented on CASSANDRA-5762:
---------------------------------------------
bq. Could we keep a "something in here has a TTL" flag and do the optimized way
unless it is set?
I don't see how we could maintain such flag. We'd need to know no TTL is
involved whatsoever at the coordinator level (so before we're reached the
replicas), which I don't think is possible to do reliably. What we could
probably do is add a per-table "disable ttl" option that would make inserts
with TTL rejected. And we could optimize when this option is set. That being
said, if you want to store both small and large values in the same row and
strongly rely on only being able to query only the small ones often, you might
be better off using 2 tables, one for the small values, one for the large ones.
> Lost row marker after TTL expires
> ---------------------------------
>
> Key: CASSANDRA-5762
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5762
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.2.0
> Environment: Ubuntu 12.04
> Reporter: Taner Catakli
> Assignee: Sylvain Lebresne
> Priority: Critical
> Fix For: 1.2.7
>
> Attachments: 0001-Always-do-slice-queries-for-CQL3-tables.txt
>
>
> I have the following table
> cqlsh:loginproject> DESCRIBE TABLE gameservers;
>
> CREATE TABLE gameservers (
> address inet PRIMARY KEY,
> last_update timestamp,
> regions blob,
> server_status boolean
> ) WITH
> bloom_filter_fp_chance=0.010000 AND
> caching='KEYS_ONLY' AND
> comment='' AND
> dclocal_read_repair_chance=0.000000 AND
> gc_grace_seconds=864000 AND
> read_repair_chance=0.100000 AND
> replicate_on_write='true' AND
> populate_io_cache_on_flush='false' AND
> compaction={'class': 'SizeTieredCompactionStrategy'} AND
> compression={'sstable_compression': 'SnappyCompressor'};
> after inserting a row and executing the following command:
> UPDATE gameservers USING TTL 10 SET server_status = true WHERE address =
> '192.168.0.100'
> after waiting for the ttl to expire, the row will lose its rowmarker making
> "select address from gameservers" returning 0 results although there are some.
> in cassandra-cli the table looks like this:
> [default@loginproject] list gameservers;
> Using default limit of 100
> Using default cell limit of 100
> -------------------
> RowKey: 192.168.0.100
> => (name=last_update, value=0000000000000017, timestamp=1373884433543000)
> => (name=regions, value=<truncated>, timestamp=1373883701652000)
> 1 Row Returned.
> Elapsed time: 345 msec(s).
> [default@loginproject]
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)