> > Disabling row caching on this new column family has resolved the issue
> > for now, but, is there something fundamental about row caching that I am
> > missing?
What cache provider were you using ? Check the row_cache_provider setting in 
the yaml file. 

If you were using the ConcurrentLinkedHashCacheProvider that would explain the 
increase in GC activity. Try the SerializingCacheProvider , it will take the 
row cache off the JVM heap. 

And as Ed says, it's not always  a great idea for wide rows. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Developer
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 3/12/2012, at 11:07 AM, Edward Capriolo <edlinuxg...@gmail.com> wrote:

> Row cache has to store the entire row. It is a very bad option for wide rows.
> 
> On Sunday, December 2, 2012, Mike <mthero...@yahoo.com> wrote:
> > Hello,
> >
> > We recently hit an issue within our Cassandra based application.  We
> > have a relatively new Column Family with some very wide rows (10's of
> > thousands of columns, or more in some cases).  During a periodic
> > activity, we the range of columns to retrieve various pieces of
> > information, a segment at a time.
> >
> > We do these same queries frequently at various stages of the process,
> > and I thought the application could see a performance benefit from row
> > caching.  We have a small row cache (100MB per node) already enabled,
> > and I enabled row caching on the new column family.
> >
> > The results were very negative.  When performing range queries with a
> > limit of 200 results, for a small minority of the rows in the new column
> > family, performance plummeted.  CPU utilization on the Cassandra node
> > went through the roof, and it started chewing up memory.  Some queries
> > to this column family hung completely.
> >
> > According to the logs, we started getting frequent GCInspector
> > messages.  Cassandra started flushing the largest mem_tables due to
> > hitting the "flush_largest_memtables_at" of 75%, and scaling back the
> > key/row caches.  However, to Cassandra's credit, it did not die with an
> > OutOfMemory error.  Its measures to emergency measures to conserve
> > memory worked, and the cluster stayed up and running.  No real errors
> > showed in the logs, except for Messages getting drop, which I believe
> > was caused by what was going on with CPU and memory.
> >
> > Disabling row caching on this new column family has resolved the issue
> > for now, but, is there something fundamental about row caching that I am
> > missing?
> >
> > We are running Cassandra 1.1.2 with a 6 node cluster, with a replication
> > factor of 3.
> >
> > Thanks,
> > -Mike
> >
> >

Reply via email to