Major compaction may not be triggered, even though region server log says it is 
triggered
-----------------------------------------------------------------------------------------

                 Key: HBASE-4024
                 URL: https://issues.apache.org/jira/browse/HBASE-4024
             Project: HBase
          Issue Type: Bug
          Components: regionserver
            Reporter: Suraj Varma
            Priority: Trivial
             Fix For: 0.92.0


The trunk version of regionserver/Store.java, method   List<StoreFile> 
compactSelection(List<StoreFile> candidates) has this code to determine whether 
major compaction should be done or not: 

    // major compact on user action or age (caveat: we have too many files)
    boolean majorcompaction = (forcemajor || isMajorCompaction(filesToCompact))
      && filesToCompact.size() < this.maxFilesToCompact;


The isMajorCompaction(filesToCompact) method internally determines whether or 
not major compaction is required (and logs this as "Major compaction triggered 
... " log message. However, after the call, the compactSelection method 
subsequently applies the filesToCompact.size() < this.maxFilesToCompact check 
which can turn off major compaction. 

This would result in a "Major compaction triggered" log message without 
actually triggering a major compaction.

The filesToCompact.size() check should probably be moved inside the 
isMajorCompaction(filesToCompact) method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to