Clean up thread pool and queue sizes
------------------------------------

                 Key: CASSANDRA-2333
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2333
             Project: Cassandra
          Issue Type: Bug
            Reporter: Jonathan Ellis
            Priority: Minor


Most of Cassandra assumes that ThreadPoolExecutor handles tasks by starting 
with Core threads, adding threads up to Max as tasks arrive, then queuing any 
additional.  This is not correct:

{noformat}
    If fewer than corePoolSize threads are running, the Executor always prefers 
adding a new thread rather than queuing.
    If corePoolSize or more threads are running, the Executor always prefers 
queuing a request rather than adding a new thread.
    If a request cannot be queued, a new thread is created unless this would 
exceed maximumPoolSize, in which case, the task will be rejected.
{noformat}

CASSANDRA-2178 fixed this in one place but made it worse by default since most 
people run with a single data dir, meaning as soon as you have multiple CFs 
flushing (or a single one with indexes) then you will start blocking writes.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to