You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Yu Li (JIRA)" <ji...@apache.org> on 2017/02/22 05:33:44 UTC

[jira] [Created] (HBASE-17676) Get class name once for all in AbstractFSWAL

Yu Li created HBASE-17676:
-----------------------------

             Summary: Get class name once for all in AbstractFSWAL
                 Key: HBASE-17676
                 URL: https://issues.apache.org/jira/browse/HBASE-17676
             Project: HBase
          Issue Type: Bug
          Components: Performance
            Reporter: Yu Li
            Assignee: Yu Li


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)