You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Daniel Doubleday <da...@gmx.net> on 2011/03/14 19:03:49 UTC

Increase flush writer queue

Hi all,

on 0.6: 

we are facing increased write latencies every now and then when an unfortunate write command thread becomes the flush writer for a mem table because of an already running mem table flush.

I was thinking of setting the work queue in CFS.flushWriterPool to 

new LinkedBlockingQueue<Runnable>(3) // because 3 is my favorite number

instead of

new LinkedBlockingQueue<Runnable>(DatabaseDescriptor.getAllDataFileLocations().length)

while leaving the max threads at 1 (we have only one date dir)

I'm not afraid to OOM. We have enough heap to hold the extra 2 mem tables.

Anybody did this and got in trouble?

PS: I know that 0.7 makes this configurable (but also increases writer concurrency while I would rather only queue).

Thanks,
Daniel

Re: Increase flush writer queue

Posted by Jonathan Ellis <jb...@gmail.com>.
Sure, that should be fine.

On Mon, Mar 14, 2011 at 1:03 PM, Daniel Doubleday
<da...@gmx.net> wrote:
> Hi all,
>
> on 0.6:
>
> we are facing increased write latencies every now and then when an unfortunate write command thread becomes the flush writer for a mem table because of an already running mem table flush.
>
> I was thinking of setting the work queue in CFS.flushWriterPool to
>
> new LinkedBlockingQueue<Runnable>(3) // because 3 is my favorite number
>
> instead of
>
> new LinkedBlockingQueue<Runnable>(DatabaseDescriptor.getAllDataFileLocations().length)
>
> while leaving the max threads at 1 (we have only one date dir)
>
> I'm not afraid to OOM. We have enough heap to hold the extra 2 mem tables.
>
> Anybody did this and got in trouble?
>
> PS: I know that 0.7 makes this configurable (but also increases writer concurrency while I would rather only queue).
>
> Thanks,
> Daniel



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com

Re: Increase flush writer queue

Posted by Brandon Williams <dr...@gmail.com>.
On Mon, Mar 14, 2011 at 1:03 PM, Daniel Doubleday
<da...@gmx.net>wrote:

> I was thinking of setting the work queue in CFS.flushWriterPool to
>
> new LinkedBlockingQueue<Runnable>(3) // because 3 is my favorite number
>
> instead of
>
> new
> LinkedBlockingQueue<Runnable>(DatabaseDescriptor.getAllDataFileLocations().length)
>

Alternately, you could add two more data directories on the same mount point
to avoid having to float a patch and do a custom deployment.

-Brandon