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

Ted Yu commented on HBASE-14266:
--------------------------------

One potential solution is to cache the config parameters retrieved from conf in 
global data structure of StoreScanner so that we don't need to read the config 
parameters at every ctor call.

> RegionServers have a lock contention of Configuration.getProps
> --------------------------------------------------------------
>
>                 Key: HBASE-14266
>                 URL: https://issues.apache.org/jira/browse/HBASE-14266
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>         Environment: hbase-0.98.6-cdh5.3.1
>            Reporter: Toshihiro Suzuki
>         Attachments: thread_dump.txt
>
>
> Here's an extract from thread dump of the RegionServer of my cluster:
> {code}
> ...
> Thread 267 (RW.default.readRpcServer.handler=184,queue=15,port=60020):
>   State: BLOCKED
>   Blocked count: 204028
>   Waited count: 9702639
>   Blocked on org.apache.hadoop.conf.Configuration@5a5e3da
>   Blocked by 250 (RW.default.readRpcServer.handler=167,queue=18,port=60020)
>   Stack:
>     org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2250)
>     org.apache.hadoop.conf.Configuration.get(Configuration.java:861)
>     org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:880)
>     org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1281)
>     
> org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:138)
>     
> org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:157)
>     
> org.apache.hadoop.hbase.regionserver.HStore.createScanner(HStore.java:1804)
>     org.apache.hadoop.hbase.regionserver.HStore.getScanner(HStore.java:1794)
>     
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:3852)
>     
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:1952)
>     org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1938)
>     org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1915)
>     org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:4872)
>     org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:4847)
>     
> org.apache.hadoop.hbase.regionserver.HRegionServer.get(HRegionServer.java:2918)
>     
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29921)
>     org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)
>     org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
>     org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116)
>     org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96)
> ...
> {code}
> There are such many threads in the thread dump.
> I think that RegionServers have a lock contention which causes performance 
> issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to