Hello Cassandra Devs,

We are currently trying to optimize our Cassandra system with
different workloads. One of our workload is update heavy (very).

Currently we are running with a patch that allows the Live Ratio to go
below 1.0 (lower bound set to 0.1 now) which gives us a
bit better performance in terms of flushes on this particular CF. We
then experienced unexpected memory issues which on further
inspection seems to be related to the SlabAllocator. What happens is
that we allocate a Region of 1MB every couple of seconds (the columns
we write in this CF contain serialized session data, can be 100K
each), so overwrites are actually done into another Region and these
regions are only freed (most of the time) when the Memtable is
flushed. We actually added some debug logs and to write about 300MB to
disk we created roughly 3000 regions. (3GB of data, some of them might
be collected before the flush but probably not much)

It would really great if we could use the native allocator only for
this CF. Since the SlabAllocator gives us very good results on our
other
CFs. (we tried running on a patched version with the HeapAllocator set
but went OOM almost immediately)

I have found this issue in which Jonathan mentions he is ok with
adding a configuration option:

https://issues.apache.org/jira/browse/CASSANDRA-3073

Unfortunately it seems the issue was closed and nothing was implemented.

Would you guys consider adding this option to a future release?
SlabAllocator should be the default but in the CF properties the
HeapAllocator
can be set.

If you want I can try to create a patch myself and submit it to you?

Kind Regards

Joost

-- 
Joost van de Wijgerd
Visseringstraat 21B
1051KH Amsterdam
+31624111401
joost.van.de.wijgerd@Skype
http://www.linkedin.com/in/jwijgerd

Reply via email to