You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Sergey Shelukhin (JIRA)" <ji...@apache.org> on 2013/03/01 00:55:12 UTC

[jira] [Updated] (HBASE-7964) requestCompaction priority argument is not used (except for user compaction check)

     [ https://issues.apache.org/jira/browse/HBASE-7964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Shelukhin updated HBASE-7964:
------------------------------------

    Description: 
In some places, like major compaction chore or requesting interface for coproc, we pass priority value to requestCompaction.
Checking the code in trunk and old code in 94, I see that neither uses this value properly; first, they check it for being user-level. Then they do this:
{code}
        // everything went better than expected. create a compaction request
        int pri = getCompactPriority(priority);
        ret = new CompactionRequest(region, this, filesToCompact, isMajor, pri);
{code}

getPriority does:
{code}
    // If this is a user-requested compaction, leave this at the highest priority
    if(priority == PRIORITY_USER) {
      return PRIORITY_USER;
    } else {
      return this.blockingStoreFileCount - this.storefiles.size();
    }
{code}, so non-user caller value is just thrown away. Probably if it's not NO_PRIORITY, it needs to be used. Overall priority code needs cleanup.

  was:
In some places, like major compaction chore or requesting interface for coproc, we pass priority value to requestCompaction.
Checking the code in trunk and old code in 94, likewise, don't use this value; first, they check it for being user-level. Then they do this:
{code}
        // everything went better than expected. create a compaction request
        int pri = getCompactPriority(priority);
        ret = new CompactionRequest(region, this, filesToCompact, isMajor, pri);
{code}

getPriority does:
{code}
    // If this is a user-requested compaction, leave this at the highest priority
    if(priority == PRIORITY_USER) {
      return PRIORITY_USER;
    } else {
      return this.blockingStoreFileCount - this.storefiles.size();
    }
{code}, so non-user caller value is just thrown away. Probably if it's not NO_PRIORITY, it needs to be used. Overall priority code needs cleanup.

    
> requestCompaction priority argument is not used (except for user compaction check)
> ----------------------------------------------------------------------------------
>
>                 Key: HBASE-7964
>                 URL: https://issues.apache.org/jira/browse/HBASE-7964
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>
> In some places, like major compaction chore or requesting interface for coproc, we pass priority value to requestCompaction.
> Checking the code in trunk and old code in 94, I see that neither uses this value properly; first, they check it for being user-level. Then they do this:
> {code}
>         // everything went better than expected. create a compaction request
>         int pri = getCompactPriority(priority);
>         ret = new CompactionRequest(region, this, filesToCompact, isMajor, pri);
> {code}
> getPriority does:
> {code}
>     // If this is a user-requested compaction, leave this at the highest priority
>     if(priority == PRIORITY_USER) {
>       return PRIORITY_USER;
>     } else {
>       return this.blockingStoreFileCount - this.storefiles.size();
>     }
> {code}, so non-user caller value is just thrown away. Probably if it's not NO_PRIORITY, it needs to be used. Overall priority code needs cleanup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira