[ 
https://issues.apache.org/jira/browse/CASSANDRA-6794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14595443#comment-14595443
 ] 

Arun Chaitanya Miriappalli commented on CASSANDRA-6794:
-------------------------------------------------------

I completely understand that "large numbers of CFs" is an anti-pattern. But 
unfortunately, in our use case we have many CFs.

Now we settled on the following approach - Use  "Off Heap Memory"

Modifications to default cassandra.yaml and cassandra-env.sh
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 * memory_allocator: JEMallocAllocator 
(https://issues.apache.org/jira/browse/CASSANDRA-7883)
 * memtable_allocation_type: offheap_objects

 By above two, the slab allocation 
(https://issues.apache.org/jira/browse/CASSANDRA-5935), which requires
 1MB heap memory per table, is disabled. The memory for table metadata, caches 
and memtable are thus
 allocated natively and does not affect GC performance.

 * tombstone_failure_threshold: 100000000
   Without this, C* throws TombstoneOverwhelmingException while in startup.
   This setting looks problematic so I want to know why just creating tables 
makes so many tombstones ...

 * -XX:+UseG1GC
   It is good for reducing GC time.
   Without this, full GCs > 1s are observed.

We created 5000 column families with about 1000 entries per column family. The 
read/write performance seems to stable and comparable.
The problem we saw is only with startup time.

No of CFs                                500 onHeap     5000 off Heap
Cassandra Start Time (s)        20                       349
Average CPU Usage (%)   40                       49.65
GC Actitivy (%)                 2.6                      0.6

I want to know if there are any problems that are foreseen in the production 
environment.
Sorry, if this is not the right place to ask this question.


> Optimise slab allocator to enable higher number of column families
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-6794
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6794
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jeremy Hanna
>            Priority: Minor
>
> Currently the slab allocator allocates 1MB per column family.  This has been 
> very beneficial for gc efficiency.  However, it makes it more difficult to 
> have large numbers of column families.
> It would be preferable to have a more intelligent way to allocate slabs so 
> that there is more flexibility between slab allocator and non-slab allocator 
> behaviour.
> A simple first step is to ramp up size of slabs from small (say  8KB) when 
> empty, to 1MB after a few slabs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to