memtable.updateLiveRatio() is blocking, causing insane latencies for writes
---------------------------------------------------------------------------
Key: CASSANDRA-4032
URL: https://issues.apache.org/jira/browse/CASSANDRA-4032
Project: Cassandra
Issue Type: Bug
Components: Core
Reporter: Peter Schuller
Assignee: Peter Schuller
Fix For: 1.1.0
Reproduce by just starting a fresh cassandra with a heap large enough for live
ratio calculation (which is {{O(n)}}) to be insanely slow, and then running
{{./bin/stress -d smf1-amv-01-sr1 -n100000000 -t10}}. With a large enough heap
and default flushing behavior this is bad enough that stress gets timeouts.
Example ("blocked for" is my debug log added around submit()):
{code}
INFO [MemoryMeter:1] 2012-03-09 15:07:30,857 Memtable.java (line 198)
CFS(Keyspace='Keyspace1', ColumnFamily='Standard1') liveRatio is
8.89014894083727 (just-counted was 8.89014894083727). calculation took 28273ms
for 1320245 columns
WARN [MutationStage:8] 2012-03-09 15:07:30,857 Memtable.java (line 209)
submit() blocked for: 231135
{code}
The calling code was written assuming a RejectedExecutionException is thrown,
but it's not because {{DebuggableThreadPoolExecutor}} installs a blocking
rejection handler.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira