bbeaudreault commented on code in PR #5228:
URL: https://github.com/apache/hbase/pull/5228#discussion_r1319809146
##########
hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncClientScanner.java:
##########
@@ -172,6 +172,7 @@ private CompletableFuture<OpenScannerResponse>
callOpenScanner(HBaseRpcControlle
}
CompletableFuture<OpenScannerResponse> future = new
CompletableFuture<>();
try {
+ controller.setTableName(loc.getRegion().getTable());
Review Comment:
I'm pretty sure this is unnecessary. This `callOpenScanner` ends up getting
called via AsyncSingleRequestRpcRetryingCaller, which does `resetCallTimeout()`
before calling the callable. So the change you made in that method should
handle this case
##########
hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRpcRetryingCaller.java:
##########
@@ -121,7 +121,11 @@ protected final void resetCallTimeout() {
} else {
callTimeoutNs = rpcTimeoutNs;
}
- resetController(controller, callTimeoutNs, priority);
+ if (getTableName().isPresent()) {
Review Comment:
could be simplified to one call, with `getTableName().orElse(null)`
##########
hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetricsConnection.java:
##########
@@ -753,6 +787,40 @@ public void updateRpc(MethodDescriptor method, Message
param, CallStats stats, T
updateRpcGeneric(methodName.toString(), stats);
}
+ /** Report table rpc context to metrics system. */
+ private void updateTableMetric(String methodName, TableName tableName,
+ HBaseProtos.RegionSpecifier regionSpecifier, Message param, CallStats
stats, Throwable e) {
+ if (tableMetricsEnabled) {
+ if (methodName != null) {
+ String table;
+ if (tableName == null ||
StringUtils.isEmpty(tableName.getNameAsString())) {
+ // Fallback to get table name from region specifier.
Review Comment:
i think we can simplify this whole method (and above calls) now. I'm not
sure we need to handle fallback, since all cases should have a TableName in the
controller now. So we don't need to extract the region in updateRpc above, nor
do we have to to parse the tablename from the region here.
if we missed a spot, i think we'd consider that a bug and fix it. maybe you
could add end-to-end tests to ensure that each of the request types updates a
table metric?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]