[ 
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

Reply via email to