[ 
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)

Reply via email to