[
https://issues.apache.org/jira/browse/HBASE-10449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14790587#comment-14790587
]
stack commented on HBASE-10449:
-------------------------------
Thanks [~nkeywal]
bq. We should not see 256 threads, because they should expire already
Maybe they spin up inside the keepalive time of 60 seconds.
bq. We will still have 60 threads, because each new request will create a new
thread until we reach coreSize
Well, I was thinking that we'd go to core size -- say # of cores -- and then if
one request a second, we'd just stay at core size because there would be a free
thread when the request-per-second came in (assuming request took a good deal <
a second).
Let me look at HBASE-11590.
What I saw was each client with hundreds -- up to 256 on one -- threads all in
WAITING like follows:
{code}
"hconnection-0x3065a6a9-shared--pool13-t247" daemon prio=10
tid=0x00007f31c1ab2000 nid=0x7718 waiting on condition [0x00007f2f9ecec000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007f841b388> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
at
java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
{code}
... usually in TestReplicasClient. Here is example:
https://builds.apache.org/view/H-L/view/HBase/job/PreCommit-HBASE-Build/15581/consoleText
See zombies on the end.
I also have second thoughts on HBASE-114433. I am going to change it so we set
config for tests only. We need to do more work before can set the core threads
down from max is what I am thinking.
Thanks [~nkeywal] I'll look at HBASE-11590.
Didn't we have a mock server somewhere such that we could standup a client with
no friction and watch it in operation? I thought we'd make such a beast....
> 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)