I’m a huge fan of cassandra, I’ve been playing with it since 0.7 and I’ve never stopped using it. It would say it’s most amazing features are: Always working and simple replication + predictable performances.
I was very happy when it went from a key-value store to a well structured database with CQL. With CQL you can focus on your data, and less on how you should organize your own structure to handle it properly. Still, behind the wheels, it works the same (it’s still a KV store). That’s why it’s very important to understand how the internal structure is done:
- Thrift to CQL3 : Introduction
- CQL3 for cassandra experts :
- Understanding how CQL3 maps to cassandra internal data structure.
it’s not a perfect replacement yet. For example, you can’t get the collection elements timestamp (called writetime in CQL). “SELECT map[‘value’] FROM table;” doesn’t exist (not CQL compatible), so “SELECT writetime( map[‘value’] ) FROM table;” doesn’t either unfortunately.
This problem is known by Cassandra’s dev team but there’s indeed a syntax issue to solve first.