At the Cassandra 2013 conference, Axel Liljencrantz from Spotify discussed 
various cassandra gotchas in his talk on "How Not to Use Cassandra." One of the 
sections of his talk was on the row cache. If you weren't at the talk, or don't 
remember it, the video is up on youtube [1]. The discussion on the row cache 
starts at about 5:35.

The takeaway from his row cache bit is that the row cache stores the full row:
Cache misses on a single column get silently turn into a full row read in order 
to cache the full row
All writes invalidate the entire row (updates thrown out the cached row)


I'm mostly interested in his second point. Is he saying that a single column 
mutation on a row which happens to be in the row cache results in the row cache 
completely discarding the row and waiting for another read of the row in order 
to bring it back in?

I must have misunderstood what he said because there is no way the row cache 
would be effective at all if that is how it worked. Most likely, it is smart 
and updates both the cache and real storage, or sets a dirty bit and writes 
through on eviction or some other sane eviction policy.

I have yet to go through the source code for the row cache. I do plan to do 
that. Can someone point me to documentation on the row cache internals? All 
I've found online so far is small discussion about it and how to enable it.

Thank you,
Faraaz

[1] http://www.youtube.com/watch?v=0u-EKJBPrj8

Reply via email to