Column objects are treated as immutable so it's quite likely you'll get back the same Columns (and buffers) if your query hits a local memtable. This was possible in 0.7.0 as well.
(This only applies to the StorageProxy interface, if you're going over Thrift it will do a copy over the network.) On Thu, May 5, 2011 at 12:34 PM, Paul Loy <ketera...@gmail.com> wrote: > Hi all, > > so I just updated Cassandra from 0.7.0 to 0.7.5. I embed Cassandra in my app > and use StorageProxy for querying. > > In one of my unit tests I write a column to Cassandra and then read it out > again twice in quick succession. The second time I now get the same > ByteBuffer (i.e. same id - same 'physical' HeapByteBuffer) as the first > call. But as I have consumed this, the position == capacity. > > I have fixed this in my code by simply using ByteBuffer#duplicate, however > I'm concerned that caching may have changed between versions and want to > know what the implications of that change may be. > > So my questions are: > > 1) is the Row Cache now enabled by default? > 2) or is there now some other form of caching that is causing this to happen > that I should be aware of? > > We're pretty close to deploying into production when we came across a > critical bug in 0.7.0 (infinite loop in HashMap) which means we have to > upgrade but I'm concerned that the changes mean our load/stress tests will > not be valid so just need some info to put my mind at ease! > > Many thanks, > > Paul. > > -- > --------------------------------------------- > Paul Loy > p...@keteracel.com > http://uk.linkedin.com/in/paulloy > -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of DataStax, the source for professional Cassandra support http://www.datastax.com