cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7386) JBOD threshold to prevent unbalanced disk utilization
Date Tue, 18 Nov 2014 08:23:34 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7386?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14215885#comment-14215885
] 

Robert Stupp commented on CASSANDRA-7386:
-----------------------------------------

Hm - just noticed that {{o.a.c.io.util.DiskAwareRunnable#runMayThrow}} and {{o.a.c.streaming.StreamReader#createWriter}}
handle a returned {{null}} value if there's no directory with enough free disk space. But
{{o.a.c.db.Directories#getLocationForDisk}} used by {{getWriteableLocationAsFile}} would NPE
(did not occur since null arg never occured).
The old implementation would always return a directory but this patch throws an {{IOError}}
(code mentioned above an {{IOException}}).
The loop in {{o.a.c.io.util.DiskAwareRunnable#runMayThrow}} seems useless.
Clean it up in this patch?

> JBOD threshold to prevent unbalanced disk utilization
> -----------------------------------------------------
>
>                 Key: CASSANDRA-7386
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7386
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Chris Lohfink
>            Assignee: Robert Stupp
>            Priority: Minor
>             Fix For: 2.1.3
>
>         Attachments: 7386-2.0-v3.txt, 7386-2.1-v3.txt, 7386-v1.patch, 7386v2.diff, Mappe1.ods,
mean-writevalue-7disks.png, patch_2_1_branch_proto.diff, sstable-count-second-run.png
>
>
> Currently the pick the disks are picked first by number of current tasks, then by free
space.  This helps with performance but can lead to large differences in utilization in some
(unlikely but possible) scenarios.  Ive seen 55% to 10% and heard reports of 90% to 10% on
IRC.  With both LCS and STCS (although my suspicion is that STCS makes it worse since harder
to be balanced).
> I purpose the algorithm change a little to have some maximum range of utilization where
it will pick by free space over load (acknowledging it can be slower).  So if a disk A is
30% full and disk B is 5% full it will never pick A over B until it balances out.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message