Skip to content

Cassandra compatibility

Christos Kalantzis edited this page Mar 18, 2015 · 8 revisions

Astyanax uses a versioning scheme that is internal to Netflix and does not match the Cassandra versioning scheme. The below table provides a mapping from astyanax version to cassandra version.

Astyanax Cassandra
2.0.x 1.2 - 2.0
1.56.26 ... 1.56.34 1.1 - 1.2
1.0.4 ... 1.56.25 1.1
1.0.0 ... 1.0.3 1.0.8
... 0.8.11 0.8.6

Thrift Compatibility

Astyanax is compatible with all cassandra versions up to and including 1.2

CQL3 Compatibility

Cassandra provides good backwards compatibility for the thrift API when migrating from 1.1 to 1.2 with the exception of CQL3 which in 1.2 must be called via a new thrift API. Astyanax supports both versions but must be told which version of cassandra the client is talking to in order to invoke the correct API. If you are not using CQL3 then Astyanax will work with any version of cassandra without any code changes. If you are using CQL3 Astyanax will by default work with Cassandra 1.1. To enable Astyanax for cassandra 1.2 you will need to specify the cassandra version as follows,

AstyanaxContext<Keyspace> keyspaceContext = new AstyanaxContext.Builder()
    ... // other config options
    .withAstyanaxConfiguration(
         new AstyanaxConfigurationImpl()
             .setTargetCassandraVersion("1.2")
             .setCqlVersion("3.0.0")
             ... // other config options
         )
.buildKeyspace(ThriftFamilyFactory.getInstance());

Cassandra 1.2 binary protocol

Astyanax does not yet support this protocol

Clone this wiki locally