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