You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2013/11/15 23:11:23 UTC

[jira] [Updated] (CASSANDRA-6357) Flush memtables to seperate directory

     [ https://issues.apache.org/jira/browse/CASSANDRA-6357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-6357:
--------------------------------------

    Attachment: 6357.txt

Patch that allows splitting out {{flush_directory}} to a separate volume, defaulting to /var/lib/cassandra/flush once patched.

Note that it will default to the first data directory if you upgrade without specifying {{flush_directory}}, so you do need to remember to set it because it won't bitch at you if you don't.

> Flush memtables to seperate directory
> -------------------------------------
>
>                 Key: CASSANDRA-6357
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6357
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Patrick McFadin
>         Attachments: 6357.txt
>
>
> Flush writers are a critical element for keeping a node healthy. When several compactions run on systems with low performing data directories, IO becomes a premium. Once the disk subsystem is saturated, write IO is blocked which will cause flush writer threads to backup. Since memtables are large blocks of memory in the JVM, too much blocking can cause excessive GC over time degrading performance. In the worst case causing an OOM.
> Since compaction is running on the data directories. My proposal is to create a separate directory for flushing memtables. Potentially we can use the same methodology of keeping the commit log separate and minimize disk contention against the critical function of the flushwriter. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)