[
https://issues.apache.org/jira/browse/HBASE-10449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14791129#comment-14791129
]
Nicolas Liochon commented on HBASE-10449:
-----------------------------------------
The algo for the ThreadPoolExecutor is:
onNewTask(){
if (currentSize < coreSize) createNewThread() else reuseThread()
}
And there is a timeout for each thread.
So if we do a coreSize of 2, a time of 20s, and a query every 15s, we have:
0s query1: create thread1, poolSize=1
15s query2: create thread2, poolSize=2
20s close thread1, poolSize=1
30s query3: create thread3, poolSize=2
35s: close thread2, poolSize=1
45s: query4: create thread4, poolSize=2
And so on. So even if we have 1 query each 15s, we have 2 threads in the pool
nearly all the time.
> Yes. Smile. Need to revive it for here and for doing client timeouts....
I found the code in TestClientNoCluster#run , ready to be reused!
I think we need to go for a hack like in Stackoverflow or for a different
implementation for TPE like HBASE-11590...
> Wrong execution pool configuration in HConnectionManager
> --------------------------------------------------------
>
> Key: HBASE-10449
> URL: https://issues.apache.org/jira/browse/HBASE-10449
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.98.0, 0.99.0, 0.96.1.1
> Reporter: Nicolas Liochon
> Assignee: Nicolas Liochon
> Priority: Critical
> Fix For: 0.98.0, 0.96.2, 0.99.0
>
> Attachments: HBASE-10449.v1.patch
>
>
> There is a confusion in the configuration of the pool. The attached patch
> fixes this. This may change the client performances, as we were using a
> single thread.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)