cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <>
Subject [jira] Updated: (CASSANDRA-2333) Clean up thread pool and queue sizes
Date Tue, 15 Mar 2011 18:23:29 GMT


Jonathan Ellis updated CASSANDRA-2333:

    Attachment: 2333.txt

Patch to remove use of maximumpoolsize in favor of core size + timing out core threads.  Also
adds memtable_flush_queue_size configuration directive, defaulting to 4.

> Clean up thread pool and queue sizes
> ------------------------------------
>                 Key: CASSANDRA-2333
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.7.5
>         Attachments: 2333.txt
> 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
> {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:

View raw message