Re: Delete doesn't remove row key?
Second, a followup question: So the row keys will be deleted after 1) the GC grace period expires, and 2) I do a compaction? Automatic compaction will purge the tombstones. Third: Assuming the answer is yes, is there any way to manually force GC of the deleted keys without doing the full GC shuffle (setting the GC grace period artificially low, restarting, compacting, setting grace period back to normal, restarting)? No. But you do not need to restart. gc_grace_seconds is set per CF and can be updated without a restart. Cheers - Aaron Morton Freelance Developer @aaronmorton http://www.thelastpickle.com On 1/02/2012, at 2:32 PM, Todd Fast wrote: First, thanks! I'd read that before, but didn't associate doing a range scan with using the CLI, much less doing select count(*) in CQL. Now I know what to call the phenomenon. Second, a followup question: So the row keys will be deleted after 1) the GC grace period expires, and 2) I do a compaction? Third: Assuming the answer is yes, is there any way to manually force GC of the deleted keys without doing the full GC shuffle (setting the GC grace period artificially low, restarting, compacting, setting grace period back to normal, restarting)? Todd On 1/31/2012 5:03 PM, Benjamin Hawkes-Lewis wrote: On Wed, Feb 1, 2012 at 12:58 AM, Todd Fastt...@conga.com wrote: I added a row with a single column to my 1.0.8 single-node cluster: RowKey: ---- = (column=test, value=hi, timestamp=...) I immediately deleted the row using both the CLI and CQL: del Foo[lexicaluuid('----')]; delete from Foo using consistency all where KEY=---- In either case, the column test is gone but the empty row key still remains, and the row count reflects the presence of this phantom row. I've tried nodetool compact/repair/flush/cleanup/scrub/etc. and nothing removes the row key. http://wiki.apache.org/cassandra/FAQ#range_ghosts -- Benjamin Hawkes-Lewis
Delete doesn't remove row key?
I added a row with a single column to my 1.0.8 single-node cluster: RowKey: ---- = (column=test, value=hi, timestamp=...) I immediately deleted the row using both the CLI and CQL: del Foo[lexicaluuid('----')]; delete from Foo using consistency all where KEY=---- In either case, the column test is gone but the empty row key still remains, and the row count reflects the presence of this phantom row. I've tried nodetool compact/repair/flush/cleanup/scrub/etc. and nothing removes the row key. How do I get rid of it? BTW, I saw this little tidbit in the describe output: Row cache size / save period in seconds / keys to save : 0.0/0/all Does all here mean to keep the keys for empty rows? If so, how do I change that behavior? ColumnFamily: Foo ... Key Validation Class: org.apache.cassandra.db.marshal.UUIDType Default column value validator: org.apache.cassandra.db.marshal.UTF8Type Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type Row cache size / save period in seconds / keys to save : 0.0/0/all Row Cache Provider: org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider Key cache size / save period in seconds: 20.0/14400 GC grace seconds: 86400 Compaction min/max thresholds: 4/32 Read repair chance: 0.1 Replicate on write: true Bloom Filter FP chance: default Built indexes: [] Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy Todd
Re: Delete doesn't remove row key?
On Wed, Feb 1, 2012 at 12:58 AM, Todd Fast t...@conga.com wrote: I added a row with a single column to my 1.0.8 single-node cluster: RowKey: ---- = (column=test, value=hi, timestamp=...) I immediately deleted the row using both the CLI and CQL: del Foo[lexicaluuid('----')]; delete from Foo using consistency all where KEY=---- In either case, the column test is gone but the empty row key still remains, and the row count reflects the presence of this phantom row. I've tried nodetool compact/repair/flush/cleanup/scrub/etc. and nothing removes the row key. http://wiki.apache.org/cassandra/FAQ#range_ghosts -- Benjamin Hawkes-Lewis
Re: Delete doesn't remove row key?
First, thanks! I'd read that before, but didn't associate doing a range scan with using the CLI, much less doing select count(*) in CQL. Now I know what to call the phenomenon. Second, a followup question: So the row keys will be deleted after 1) the GC grace period expires, and 2) I do a compaction? Third: Assuming the answer is yes, is there any way to manually force GC of the deleted keys without doing the full GC shuffle (setting the GC grace period artificially low, restarting, compacting, setting grace period back to normal, restarting)? Todd On 1/31/2012 5:03 PM, Benjamin Hawkes-Lewis wrote: On Wed, Feb 1, 2012 at 12:58 AM, Todd Fastt...@conga.com wrote: I added a row with a single column to my 1.0.8 single-node cluster: RowKey: ---- = (column=test, value=hi, timestamp=...) I immediately deleted the row using both the CLI and CQL: del Foo[lexicaluuid('----')]; delete from Foo using consistency all where KEY=---- In either case, the column test is gone but the empty row key still remains, and the row count reflects the presence of this phantom row. I've tried nodetool compact/repair/flush/cleanup/scrub/etc. and nothing removes the row key. http://wiki.apache.org/cassandra/FAQ#range_ghosts -- Benjamin Hawkes-Lewis