Hi, I'm attempting to use avro to talk to cassandra because the ruby thrift client's read performance is pretty bad (I measured 4x slower than java).
However, I run into a problem when calling multiget_slice. The server gives a KeyspaceNotDefinedException because clientState.getKeyspace() returns null. It seems this is because ClientState stores the keyspace in a ThreadLocal. I call set_keyspace and clientState stores the keyspace value. I guess the next avro call to multiget_slice runs in a different thread so it can't retrieve the value. In ruby, I use Avro::IPC::HTTPTransceiver as the transport which I believe is a stateless transport. I also tried SocketTransport, but that died with a malloc exception. Is this a problem with the ruby avro library (I use avro 1.4.0), or how the server handles avro threads? Any help would be appreciated! Thanks, --Gabor