Ariel Weisberg created CASSANDRA-12071:
------------------------------------------

             Summary: Regression in flushing throughput under load after 
CASSANDRA-6696
                 Key: CASSANDRA-12071
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12071
             Project: Cassandra
          Issue Type: Bug
          Components: Local Write-Read Paths
            Reporter: Ariel Weisberg


The way flushing used to work is that a ColumnFamilyStore could have multiple 
memtables flushing at once. The way it works now there can be only a single 
flush of any memtable running in the C* process, and the number of threads 
applied to that flush is bounded by the number of disks in JBOD.

This works ok most of the time but occasionally flushing will be a little 
slower and ingest will outstrip it and then block on available memory. At this 
point you see several second stalls that cause timeouts.

This is a problem for reasonable configurations that don't use JBOD but have 
access to a fast disk that can handle some IO queuing (RAID, SSD).

You can reproduce on beefy hardware (12 cores 24 threads, 64 gigs of RAM, SSD) 
if you unthrottle compaction or set it to something like 64 megabytes/second 
and run with 8 compaction threads and stress with the default write workload 
and a reasonable number of threads. I tested with 96.

It started happening after about 60 gigabytes of data was loaded.



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

Reply via email to