You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "zhoushuaifeng (JIRA)" <ji...@apache.org> on 2011/04/01 10:04:05 UTC

[jira] [Created] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

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

[jira] [Resolved] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

Posted by "stack (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack resolved HBASE-3723.
--------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]

Committed to TRUNK.  Thank you for the patch Zhou.

> 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

[jira] [Commented] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ 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

[jira] [Commented] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13016737#comment-13016737 ] 

Hudson commented on HBASE-3723:
-------------------------------

Integrated in HBase-TRUNK #1836 (See [https://hudson.apache.org/hudson/job/HBase-TRUNK/1836/])
    HBASE-3723 Major compact should be done when there is only one storefile and some keyvalue is outdated


> 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

[jira] [Updated] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

Posted by "zhoushuaifeng (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

zhoushuaifeng updated HBASE-3723:
---------------------------------

    Attachment: hbase-3723.txt

When there is only one file in the store and some keyvalues are outdated, majorcompact should be triggered whatever the file is made by a majorcompact or not.

> 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

[jira] [Commented] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13014710#comment-13014710 ] 

stack commented on HBASE-3723:
------------------------------

If you add a patch zhoushuaifeng, I'll apply it.  Thanks for reporting this bug.

> 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
>
>
> 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

[jira] [Assigned] (HBASE-3723) Major compact should be done when there is only one storefile and some keyvalue is outdated.

Posted by "Jean-Daniel Cryans (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean-Daniel Cryans reassigned HBASE-3723:
-----------------------------------------

    Assignee: zhoushuaifeng

> 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
>            Assignee: 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