You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by "ssivikt@gmail.com" <ss...@gmail.com> on 2015/03/11 17:55:58 UTC

How cassandra works with off-heap memtables?

Hi!

I have 2 questions related to our current benchmarking afforts:

1) We use C* v2.1.2 and we have the following keyspaces

*|cqlsh>  SELECT  *  FROM  system.schema_keyspaces;
  keyspace_name|  durable_writes|  strategy_class|  strategy_options
---------------+----------------+---------------------------------------------+----------------------------
         system|            True|  org.apache.cassandra.locator.LocalStrategy|                          {}
      system_traces|           False|  org.apache.cassandra.locator.SimpleStrategy|  {"replication_factor":"2"}
        a1_ks|           False|  org.apache.cassandra.locator.SimpleStrategy|  {"replication_factor":"2"}|*

We have two disks. Data directory is on sda. Commitlog is on sdb. We do 
100% writes into a1_ks.user_table .

Watching IO activities we've noticed that C* write something (mutations) 
into commitlog. But it looks strange because we disabled durable writes 
for a1_ks. May it be any system activities flushed into commitlog?

2) We set the following parameters:

*|# memtable_heap_space_in_mb: 2048
memtable_offheap_space_in_mb: 40960

memtable_cleanup_threshold: 0.99
memtable_allocation_type: offheap_objects|*

And we expect all the data to be written to RAM only (considering schema 
settings from 1) and expect that flush will not be triggered until 
available memtable offheap space reaches ~30GB. But flushes looks 
triggered before that limit. System monitor (we have all Linux 
statistics collected by sar utility) shows ~16GB RAM is in use at that 
moment (linux+jvm+heap+...). We are possible misunderstand the 
configuration, are we?

Our goal at this stage is to achieve maximum write performance with 
durable_writes = false and replication factor 2 by utilizing only 
network (we have 10GbE), not being hit by disk capabilities. The are 
using YCSB and inserting 30 000 000 records 1kb each, and having 120 GB 
RAM per server. Current throughput is ~120k ops/sec, 1 YCSB node and 3 
C* nodes.

-- 
Thanks,
Serj