Short version: It looks like DataStax has released an official C++ driver for their new CQL native protocol. This makes it possible to update MariaDB’s Cassandra Storage Engine to work with all column families in Cassandra 1.2 and up.
Long version: In case the above didn’t make any sense to you, here’s some background:
- Cassandra Storage Engine was developed against Cassandra 1.1
- Cassandra 1.1 had a client-server protocol based on Thrift API. It had a number of limitations, the most important was lack of support for streaming. These translated into limitations in Cassandra storage engine, for example, I could not support secondary indexes.
- Cassandra 1.2 was released in February, and it had a new, native CQL protocol. The protocol supported streaming, but there were no C/C++ drivers.
- Besides that, Cassandra has changed its data model in version 1.2. After this change, Thrift API clients
were screwedcould only access column families defined with
WITH COMPACT STORAGEattribute. This applied to Cassandra Storage Engine as well.
Now, with official C/C++ driver for CQL protocol, it should be possible to update Cassandra Storage Engine to work with new versions of Cassandra. It will take some effort to move from using Thrift API to using CQL, but the required amount of effort just went down a lot.