We run a fairly small production Cassandra 2.2.4 cluster with 5 nodes on 
Rackspace VMs, (4 cores, 4GB RAM, SSD backed) and whilst these nodes are on the 
small side, day to day it has kept up with our workload fine. 

We currently use SizeTieredCompactionStrategy and want to move to the 
LeveledStrategy. I am attempting to do this one node at a time by following 
http://blog.alteroot.org/articles/2015-04-20/change-cassandra-compaction-strategy-on-production-cluster.html
 
<http://blog.alteroot.org/articles/2015-04-20/change-cassandra-compaction-strategy-on-production-cluster.html>
  which suggests you can do this by tweaking the compaction strategy on the fly 
via JMX.

However, when I do this, the node soon runs out of RAM and cassandra is OOMed, 
or I get a Out of native memory error ( http://pastebin.com/esT2wqHz 
<http://pastebin.com/esT2wqHz> ) - both outcomes seem to happen randomly when 
the compaction is changed.

I’m running the default cassandra.yaml and cassandra-env settings for 
everything (apart from things like seed nodes and listen addresses etc) and 
have also tried turning on trickle_fsync and set the fsync inteval to 100MB / 
50MB which seemed to slightly increase the time before the out of memory event 
but not much else.


Is there another way to change over compaction strategies that is less likely 
to use up so much RAM? Current STCS compactions complete fine, as do repairs, 
anticompactions etc.



Chris



Reply via email to