You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Gary Helmling (JIRA)" <ji...@apache.org> on 2011/02/24 23:38:38 UTC

[jira] Resolved: (HBASE-3553) number of active threads in HTable's ThreadPoolExecutor

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

Gary Helmling resolved HBASE-3553.
----------------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]

Committed to 0.90 branch and trunk.  Thanks for the patch, Himanshu!

> number of active threads in HTable's ThreadPoolExecutor
> -------------------------------------------------------
>
>                 Key: HBASE-3553
>                 URL: https://issues.apache.org/jira/browse/HBASE-3553
>             Project: HBase
>          Issue Type: Improvement
>          Components: client
>    Affects Versions: 0.90.1
>            Reporter: Himanshu Vashishtha
>             Fix For: 0.90.2
>
>         Attachments: HBASE-3553_final.patch, ThreadPoolTester.java, benchmark_results.txt
>
>
> Using a ThreadPoolExecutor with corePoolSize = 0 and using LinkedBlockingQueue as the collection to hold incoming runnable tasks seems to be having the effect of running only 1 thread, irrespective of the maxpoolsize set by reading the property hbase.htable.threads.max (or number of RS). (This is what I infer from reading source code of ThreadPoolExecutor class in 1.6)
> On a 3 node ec2 cluster, a full table scan with approx 9m rows results in almost similar timing with a sequential scanner (240 secs) and scanning with a Coprocessor (230 secs), that uses HTable's pool to  submit callable objects for each region. 
> I try to come up with a test class that creates a similar threadpool, and test that whether the pool size ever grows beyond 1. It also confirms that it remains 1 though it executed 100 requests.
> It seems the desired behavior was to release all resources when the client is done reading, but this can be achieved by setting allowCoreThreadTimeOut to true (after setting a +ve corePoolSize).

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira