cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Comment Edited] (CASSANDRA-6357) Flush memtables to separate directory
Date Sat, 08 Feb 2014 22:14:19 GMT


Aleksey Yeschenko edited comment on CASSANDRA-6357 at 2/8/14 10:14 PM:

DD.applyConfig() logic should be altered:
        else if (conf.memtable_flush_writers == null)
            conf.memtable_flush_writers = conf.data_file_directories.length;

Directories.SSTableLister seems to not include the flush directory, which would break Standalone{Upgrader,
Splitter, Scrubber} and a bunch of other stuff using the lister.

That, and I think we should support configuring multiple flush directories from the very beginning,
even if most users will use none or one.

was (Author: iamaleksey):

> Flush memtables to separate directory
> -------------------------------------
>                 Key: CASSANDRA-6357
>                 URL:
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Patrick McFadin
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 2.0.6
>         Attachments: 6357-v2.txt, 6357.txt, c6357-stress-write-latency-99th-1.png
> 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

View raw message