[ https://issues.apache.org/jira/browse/HBASE-14443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ted Yu reassigned HBASE-14443: ------------------------------ Assignee: Jianwei Cui > Add request parameter to the TooSlow/TooLarge warn message of RpcServer > ----------------------------------------------------------------------- > > Key: HBASE-14443 > URL: https://issues.apache.org/jira/browse/HBASE-14443 > Project: HBase > Issue Type: Improvement > Components: Operability, rpc > Affects Versions: 1.2.1 > Reporter: Jianwei Cui > Assignee: Jianwei Cui > Priority: Minor > Attachments: HBASE-14443-trunk-v1.patch > > > The RpcServer will log a warn message for TooSlow or TooLarge request as: > {code} > logResponse(new Object[]{param}, > md.getName(), md.getName() + "(" + param.getClass().getName() + > ")", > (tooLarge ? "TooLarge" : "TooSlow"), > status.getClient(), startTime, processingTime, qTime, > responseSize); > {code} > The RpcServer#logResponse will create the warn message as: > {code} > if (params.length == 2 && server instanceof HRegionServer && > params[0] instanceof byte[] && > params[1] instanceof Operation) { > ... > responseInfo.putAll(((Operation) params[1]).toMap()); > ... > } else if (params.length == 1 && server instanceof HRegionServer && > params[0] instanceof Operation) { > ... > responseInfo.putAll(((Operation) params[0]).toMap()); > ... > } else { > ... > } > {code} > Because the parameter is always a protobuf message, not an instance of > Operation, the request parameter will not be added into the warn message. The > parameter is helpful to find out the problem, for example, knowing the > startRow/endRow is useful for a TooSlow scan. To improve the warn message, we > can transform the protobuf request message to corresponding Operation > subclass object by ProtobufUtil, so that it can be added the warn message. > Suggestion and discussion are welcomed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)