April 8th, 2013

This weekend I was poking through the cassandra source code. I know what your thinking…Isn’t that what you do during the week? 🙂 Well anyway I found this.

Wow wait! What? So I started digging around, besides the unit test I saw some other issues around this. https://issues.apache.org/jira/browse/CASSANDRA-4409 . In case you do not know what a tombstone is, a tombstone is a delete. A range tombstone is like a slice delete. For example say your data columns are named a,b,c,d,e. You can delete a range of columns like b-d, this is one tombstone entry in the database, and on read the user is only retuned columns a,e.

As it turns out thrift’s Deletion has accepted a predicate for a while now.

Since the unit test was there I decided to give it a go.


I decided to get off my arse and do something about it. Being that I have been hacking on intravert lately I am bit more skilled navigating cassandra’s internals (mostly StorageProxy). I did surprise myself by getting into the code and getting it done in a couple of hours (done meaning done in unit test, not done like ready for commit)


Anyway until football comes back Sunday with cassandra and eclipse is good for me!

One thing to look out for, RangeTombstones get heavy on the read side if you have too many of them. Use them sparingly!