cassandra schema management

John Sanda jsanda at redhat.com
Tue Feb 12 02:31:23 UTC 2013


Today I started updating the version of Liquibase we build against. We had been building off of a fork that had my changes that were needed to move forward with Cassandra. Those changes had recently been merged in upstream. RHQ itself does not have a direct dependency on those changes. The Liquibase extensions that add support for Cassandra require those changes. Those extension live at https://github.com/jsanda/cassandra-liquibase-ext. Since the Liquibase changes are not yet in a released version, we have to build Liquibase from source. Once I updated the scripts to build from upstream, I was no longer able to build cassandra-liquibase-ext. I started getting a number of compiler errors. I spent a good deal of time this afternoon trying to reconcile the changes. Some classes that we were using and even extending have been completely removed from the Liquibase core. I posted a question about it on the Liquibase developer forum. There has yet to be a response.

Taking everything into consideration, I think it is time to cut our losses with Liquibase and pursue another option. It is unsettling at best that classes and APIs that are intended to be used for extending Liquibase have been completely removed, and I haven't been able to find so much as a mention of it in the git history, let alone a note on the developer forum. Aside from that, we are using the Cassandra JDBC driver in cassandra-liquibase-ext. As best I can tell, the driver project has been abandoned. There haven't been any commits since November. If we continue down the Liquibase path, then we pretty much have to assume ownership of the JDBC driver. The driver is far from fully implemented, and it was implemented using Thrift APIs. Everywhere else we are using the DataStax driver which is actively maintained and already had a larger community than the JDBC driver had. The DataStax driver is not a JDBC driver, but it makes a lot more sense to be using it. It is worth noting that the Liquibase/Cassandra JDBC driver proof of concept was already done before the DataStax driver was even announced. If the DataStax driver was available when I started this work, we might have gone down a different path from the get go.

For the short term (next couple days), I am going to take out the Liquibase stuff, and implement minimal support for installing the Cassandra schema so we are not blocked on this any longer than we have to. Going forward we can figure out the long term solution.

- John


More information about the rhq-devel mailing list