You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2011/06/09 05:38:58 UTC
[jira] [Commented] (HBASE-3723) Major compact should be done when
there is only one storefile and some keyvalue is outdated.
[ https://issues.apache.org/jira/browse/HBASE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13046320#comment-13046320 ]
stack commented on HBASE-3723:
------------------------------
Committed to branch.
> 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.0, 0.90.1
> Reporter: zhoushuaifeng
> Fix For: 0.90.2
>
> Attachments: hbase-3723.txt
>
>
> 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