[ https://issues.apache.org/jira/browse/HBASE-17676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yu Li updated HBASE-17676: -------------------------- Resolution: Fixed Hadoop Flags: Reviewed Fix Version/s: 2.0 Status: Resolved (was: Patch Available) Pushed into master branch. Thanks for review [~Apache9] [~anoop.hbase]. > Get class name once for all in AbstractFSWAL > -------------------------------------------- > > Key: HBASE-17676 > URL: https://issues.apache.org/jira/browse/HBASE-17676 > Project: HBase > Issue Type: Improvement > Components: Performance > Affects Versions: 2.0 > Reporter: Yu Li > Assignee: Yu Li > Fix For: 2.0 > > Attachments: HBASE-17676.patch, HBASE-17676.v2.patch, > HBASE-17676.v3.patch > > > While verifying HBASE-17471 with high write workload, observed several > handler thread at getting class name in jstack, as shown below: > {noformat} > "B.defaultRpcServer.handler=60,queue=3,port=16020" daemon prio=10 > tid=0x00007f0673835800 nid=0x4dec runnable [0x00007f06721b5000] > java.lang.Thread.State: RUNNABLE > at java.lang.Class.getEnclosingMethod0(Native Method) > at java.lang.Class.getEnclosingMethodInfo(Class.java:964) > at java.lang.Class.getEnclosingClass(Class.java:1137) > at java.lang.Class.getSimpleBinaryName(Class.java:1282) > at java.lang.Class.getSimpleName(Class.java:1174) > at > org.apache.hadoop.hbase.regionserver.wal.FSHLog.stampSequenceIdAndPublishToRingBuffer(FSHLog.java:1251) > at > org.apache.hadoop.hbase.regionserver.wal.FSHLog.append(FSHLog.java:1238) > at > org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutation(HRegion.java:3173) > at > org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2874) > at > org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2814) > at > org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:823) > at > org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:785) > at > org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2259) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32213) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:848) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:102) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) > at java.lang.Thread.run(Thread.java:756) > {noformat} > We could get the class name in constructor and use it for all places needed. -- This message was sent by Atlassian JIRA (v6.3.15#6346)