[ 
https://issues.apache.org/jira/browse/HBASE-20095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16414989#comment-16414989
 ] 

Reid Chan commented on HBASE-20095:
-----------------------------------

BTW, {{wait}} without while loop will trigger {{findbugs}} warning.
What about this impl:
{code}
    synchronized void updatePool(long timeout) {
      long stopWaitTime = System.currentTimeMillis() + timeout;
      while (cleanerLatch != 0 && timeout > 0) {
        try {
          wait(timeout);
          timeout = stopWaitTime - System.currentTimeMillis();
        } catch (InterruptedException ie) {
          Thread.currentThread().interrupt();
        }
      }
      pool.shutdownNow();
      LOG.info("Update chore's pool size from {} to {}", pool.getParallelism(), 
size);
      pool = new ForkJoinPool(size);
    }
{code}
I think this impl may be better than my previous one if more than 2 cleaners 
are available..

> Redesign single instance pool in CleanerChore
> ---------------------------------------------
>
>                 Key: HBASE-20095
>                 URL: https://issues.apache.org/jira/browse/HBASE-20095
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Reid Chan
>            Assignee: Reid Chan
>            Priority: Critical
>             Fix For: 3.0.0, 2.1.0
>
>         Attachments: 20095.addendum, HBASE-20095.master.001.patch, 
> HBASE-20095.master.002.patch, HBASE-20095.master.003.patch, 
> HBASE-20095.master.004.patch, HBASE-20095.master.005.patch, 
> HBASE-20095.master.006.patch, HBASE-20095.master.007.patch, 
> HBASE-20095.master.008.patch, HBASE-20095.master.009.patch, 
> HBASE-20095.master.010.patch, HBASE-20095.master.011.patch, 
> HBASE-20095.master.012.patch, HBASE-20095.master.013.patch, 
> HBASE-20095.master.014.patch
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to