Xuesen Liang created HADOOP-17754: ------------------------------------- Summary: Remove lock contention in overlay of Configuration Key: HADOOP-17754 URL: https://issues.apache.org/jira/browse/HADOOP-17754 Project: Hadoop Common Issue Type: Improvement Reporter: Xuesen Liang
The *overlay* field of class *Configuration* is a point of lock contention, which is bad for performance. E.g., {code:java} $ grep 'waiting to lock <0x00007fa4fc113378>' 17326.jstack | uniq -c 257 - waiting to lock <0x00007fa4fc113378> (a org.apache.hadoop.conf.Configuration) {code} and the thread stack is as follows: {code:java} "hconnection-0x66971f6b-shared--pool1-t1060" #6315 daemon prio=5 os_prio=0 tid=0x00007f5c04018800 nid=0x11f31 waiting for monitor entry [0x00007f567f3f4000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.hadoop.conf.Configuration.getOverlay(Configuration.java:1328) - waiting to lock <0x00007fa4fc113378> (a org.apache.hadoop.conf.Configuration) at org.apache.hadoop.conf.Configuration.handleDeprecation(Configuration.java:684) at org.apache.hadoop.conf.Configuration.get(Configuration.java:1088) at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1145) at org.apache.hadoop.conf.Configuration.getInt(Configuration.java:1375) at org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory.getMetadataPriority(PhoenixRpcSchedulerFactory.java:92) at org.apache.hadoop.hbase.ipc.controller.MetadataRpcController.<init>(MetadataRpcController.java:59) at org.apache.hadoop.hbase.ipc.controller.ClientRpcControllerFactory.getController(ClientRpcControllerFactory.java:57) at org.apache.hadoop.hbase.ipc.controller.ClientRpcControllerFactory.newController(ClientRpcControllerFactory.java:41) at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:216) at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:65) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:210) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:365) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:339) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:136) at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-dev-h...@hadoop.apache.org