Hum, my bad.
There is setting in the cassandra.yaml file which controls that.
# Whether or not a snapshot is taken of the data before keyspace truncation
# or dropping of column families. The STRONGLY advised default of true
# should be used to provide data safety. If you set this flag to false, you will
# lose data on truncation or drop.
Reading the oficial wiki page( http://wiki.apache.org/cassandra/API ) we can understand it as:
----- Original Message -----
From: "Víctor Hugo Oliveira Molinar" <firstname.lastname@example.org>
Sent: Tuesday, March 19, 2013 11:50:35 AM
Subject: Truncate behaviour
I'm researching the behaviour for truncate operations at cassandra.
And reading the DataStax page( http://www.datastax.com/docs/1.0/references/cql/TRUNCATE ) we can understand it as:
"Removes all the rows from the given column family."
" A TRUNCATE statement results in the immediate, irreversible removal of all data in the named column family."
But I think there is a missing and important point about truncate operations.
At least at 1.2.0 version, whenever I run a truncate operation, C* automatically creates a snapshot file of the column family, resulting in a fake free disk space.
I'm intentionally mentioning 'fake free disk space' because I only figured it out when the machine disk space was at high usage.
- Is it a security C* behaviour of creating snapshots for each CF before truncate operation?
- In my scenario I need to purge my column family data every day.
I thought that truncate could handle it based at the docs. But it doesnt.
And since I dont want to manually delete those snapshots, I'd like to know if there is a safe and practical way to perform a daily purge of this CF data.
Thanks in advance!