driftx/Telephus — Issue #26: full support for cassandra 0.7 - 1.1
Author: thepaul
Created: 2012-02-22 20:11:24+00:00
State: open

Telephus is hands-off enough in its use of the Cassandra api that it ought to be able to cleanly support all use of the api with any version of Cassandra past 0.7. That is, a user should be able to use the latest Telephus with Cassandra 0.7, assuming the user is aware of what methods exist on the server side (I'm not suggesting Telephus simply abstract all the differences between the Cassandra versions, just that they should all be usable).

Right now, it's close to that goal, but falls short in a few instances:

* it thinks that only 0.7 and 0.8 exist. this causes some difficulties with the existing translate.py code (which, I guess, is just there to make KsDef.replication_factor appear to keep working?)
* tests assume that only 0.8 supports counters, although anything after 0.7 does
* the thrift defs for 1.0 and 1.1 aren't present
* user can't select the api version to use before connecting

In an ideal world, it would be sufficient to use the 1.1-beta1 thrift defs for all versions, since it's supposed to be backwards compatible. However, quite a few CfDef and KsDef attributes have been removed since 0.7, so a user with only the 1.1-beta1 thrift code wouldn't be able to set those attributes for an 0.7 Cassandra.

If we don't care about setting those options with Telephus, then we can get rid of the multiple-thrift-def thing altogether. That's probably not an option for at least some telephus users I can think of, though.