You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "David Chia (JIRA)" <ji...@apache.org> on 2014/07/24 22:04:39 UTC

[jira] [Created] (CASSANDRA-7615) Data isn't written to the disk with enough space while using multiple data_file_directories

David Chia created CASSANDRA-7615:
-------------------------------------

             Summary: Data isn't written to the disk with enough space while using multiple data_file_directories
                 Key: CASSANDRA-7615
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7615
             Project: Cassandra
          Issue Type: Bug
          Components: Core
         Environment: System: AWS c3.xlarge (80GB SSD) with 500GB EBS
Cassandra version: 1.2.16
            Reporter: David Chia


*Background:* The local disk on the server was running out of disk space, so I added a new volume and I added a new data directory (on the new disk) to the data_file_directories list.

*Behavior:* I could see that some of the new sstables were flushed to this new data directory, but Cassandra was still compacting the sstables to the old disk; eventually, it crashed with out-of-disk-space. It is not what [CASSANDRA-4292|https://issues.apache.org/jira/browse/CASSANDRA-4292?focusedCommentId=13422574&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13422574] described, unless the design decision had been changed.

*Suspect:* It seems the precedence of the tasks number is somewhat over the free space of the volume, so it would choose less-load-and-less-space over higher-load-and-more-space ( ? )

{code:title=https://github.com/apache/cassandra/blob/cassandra-1.2/src/java/org/apache/cassandra/db/Directories.java#L190-L199|borderStyle=solid}
        Collections.sort(candidates);

        // sort directories by load, in _ascending_ order.
        Collections.sort(candidates, new Comparator<DataDirectory>()
        {
            public int compare(DataDirectory a, DataDirectory b)
            {
                return a.currentTasks.get() - b.currentTasks.get();
            }
        });
{code}

Thanks in advance.



--
This message was sent by Atlassian JIRA
(v6.2#6252)