You're not supposed to change the table settings by modifying system.schema_columnfamilies as this will skip proper propagation of the change. Instead, you're supposed to do an ALTER TABLE, so something like:
† ALTER TABLE hol WITH default_time_to_live=10;

That being said, if you restart the node on which you've made the update, the change "should" be picked up and propagated to all nodes. Still not a bad idea to do the ALTER TABLE to make sure everything is set right.


On Tue, Oct 1, 2013 at 10:50 AM, Pieter Callewaert <> wrote:


We are starting up a new cluster with Cassandra 2.0.0 and one of the features we were interested in was Per-CF TTL (

I didnít find any commands in CQL to set this value, so Iíve used the following:

†††††††††††††† UPDATE system.schema_columnfamilies SET default_time_to_live = 10 WHERE keyspace_name = 'testschema' AND columnfamily_name = 'hol';

Confirming it is set:

cqlsh:testschema> select default_time_to_live from system.schema_columnfamilies where keyspace_name = 'testschema' and columnfamily_name = 'hol';



†††††††††††††††††† 10

Then I Insert some dummy data, but it never expiresÖ

Using the ttl command I get this:

cqlsh:testschema> select ttl(coverage) from hol;



††††††††† Null

Am I doing something wrong? Or is this a bug?

Kind regards,

Description: cid:image003.png@01CD9CE5.CE5A2330

†† Pieter Callewaert

†† Web & IT engineer

†† Web: †


†† Tel: †+ 32 9 330 51 80