Major compact should be done when there is only one storefile and some keyvalue
is outdated.
--------------------------------------------------------------------------------------------
Key: HBASE-3723
URL: https://issues.apache.org/jira/browse/HBASE-3723
Project: HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 0.90.1, 0.90.0
Reporter: zhoushuaifeng
Fix For: 0.90.2
In the function store.isMajorCompaction:
if (filesToCompact.size() == 1) {
// Single file
StoreFile sf = filesToCompact.get(0);
long oldest =
(sf.getReader().timeRangeTracker == null) ?
Long.MIN_VALUE :
now - sf.getReader().timeRangeTracker.minimumTimestamp;
if (sf.isMajorCompaction() &&
(this.ttl == HConstants.FOREVER || oldest < this.ttl)) {
if (LOG.isDebugEnabled()) {
LOG.debug("Skipping major compaction of " + this.storeNameStr +
" because one (major) compacted file only and oldestTime " +
oldest + "ms is < ttl=" + this.ttl);
}
}
} else {
When there is only one storefile in the store, and some keyvalues' TTL are
overtime, the majorcompactchecker should send this region to the compactquene
and run a majorcompact to clean these outdated data. But according to the code
in 0.90.1, it will do nothing.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira