You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Liang Xie (JIRA)" <ji...@apache.org> on 2013/07/08 08:07:48 UTC

[jira] [Created] (HBASE-8892) should pick the files as older as possible also while hasReferences

Liang Xie created HBASE-8892:
--------------------------------

             Summary: should pick the files as older as possible also while hasReferences
                 Key: HBASE-8892
                 URL: https://issues.apache.org/jira/browse/HBASE-8892
             Project: HBase
          Issue Type: Bug
          Components: Compaction
    Affects Versions: 0.94.9
            Reporter: Liang Xie
            Assignee: Liang Xie
            Priority: Minor


Currently, while hasReferences for compactSelection, and if compactSelection.getFilesToCompact() has more than maxFilesToCompact files, we clear the files from beginning, it's different with the normal minor compaction ratio based policy, which tries to do compactSelection from older to newer ones as possible.

{code}
      } else if (compactSelection.getFilesToCompact().size() > this.maxFilesToCompact) {
        // all files included in this compaction, up to max
        int pastMax = compactSelection.getFilesToCompact().size() - this.maxFilesToCompact;
        compactSelection.getFilesToCompact().subList(0, pastMax).clear();
{code}

It makes the beginning files more difficult to be picked up in future's minor compaction stage.

IMHO, it should be like this:
{code}
        compactSelection.getFilesToCompact()
            .subList(this.maxFilesToCompact, compactSelection.getFilesToCompact().size())
            .clear();
{code}

It's not a big issue, since occurs while hasReferences returns true only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira