On Mon, Sep 6, 2010 at 8:39 PM, Jonathan Ellis <jbel...@gmail.com> wrote: > On Mon, Sep 6, 2010 at 4:04 PM, Edward Capriolo <edlinuxg...@gmail.com> wrote: >> I was not aware of that. Also is the default for 6.o non framed and >> 7.o framed? > > Yes. > >>I was thinking possibly replace cassanda.client detect the >> server version and use reflection. > > This would have to be tested; the speed penalty for using reflection > in Java is fairly high. > > -- > Jonathan Ellis > Project Chair, Apache Cassandra > co-founder of Riptano, the source for professional Cassandra support > http://riptano.com >
Jonathan, Good point. Thinking about this a little more, even though thrift does not support overloaded the Java code that thrift has generated would. (I know editing the thirft generated code is not the greatest, but neither is double upgrades) ColumnOrSuperColumn get(1:required binary key, 2:required ColumnPath column_path, 3:required ConsistencyLevel consistency_level=ONE) throws (1:InvalidRequestException ire, 2:NotFoundException nfe, 3:UnavailableException ue, 4:TimedOutException te) ColumnOrSuperColumn get(1:required string keyspace, 2:required string key, 3:required ColumnPath column_path, 4:required ConsistencyLevel consistency_level=ONE) throws (1:InvalidRequestException ire, 2:NotFoundException nfe, 3:UnavailableException ue, 4:TimedOutException te), The approach here would be for the client classpath, build a cassandra client. This would be generated from the 7.0 Cassandra.Client but we would create overloads matching the old signatues, that are chained calls to the new method. This way a 6.0 tool like hector would not be aware that it is speaking to a 7.0 instance. This sounds like it would work with an exception being if some return object like ColumnOrSuper column was drastically different ie (missing a property ) that hector is looking for. Which then starts making the problem more involved then just a simple chained call. Maybe this is much ado about nothing, but as I mentioned API changing upgrades have been a problem for us in the past is we have to commit to new versions of everything across the board simultaneously. Edward