HBASE-25634 The client frequently exceeds the quota, which causes the meta table scan to be too high
This commit is contained in:
parent
c52c091609
commit
8b3dc69362
|
@ -73,6 +73,10 @@ public class RetriesExhaustedException extends IOException {
|
||||||
}
|
}
|
||||||
return joiner.toString();
|
return joiner.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Throwable getThrowable() {
|
||||||
|
return throwable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -33,6 +33,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import org.apache.hadoop.hbase.CallQueueTooBigException;
|
import org.apache.hadoop.hbase.CallQueueTooBigException;
|
||||||
import org.apache.hadoop.hbase.DoNotRetryIOException;
|
import org.apache.hadoop.hbase.DoNotRetryIOException;
|
||||||
import org.apache.hadoop.hbase.exceptions.PreemptiveFastFailException;
|
import org.apache.hadoop.hbase.exceptions.PreemptiveFastFailException;
|
||||||
|
import org.apache.hadoop.hbase.quotas.RpcThrottlingException;
|
||||||
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
|
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
|
||||||
import org.apache.hadoop.hbase.util.ExceptionUtil;
|
import org.apache.hadoop.hbase.util.ExceptionUtil;
|
||||||
import org.apache.hadoop.ipc.RemoteException;
|
import org.apache.hadoop.ipc.RemoteException;
|
||||||
|
@ -103,7 +104,13 @@ public class RpcRetryingCallerImpl<T> implements RpcRetryingCaller<T> {
|
||||||
long expectedSleep;
|
long expectedSleep;
|
||||||
try {
|
try {
|
||||||
// bad cache entries are cleared in the call to RetryingCallable#throwable() in catch block
|
// bad cache entries are cleared in the call to RetryingCallable#throwable() in catch block
|
||||||
callable.prepare(tries != 0);
|
Throwable t = null;
|
||||||
|
if (exceptions != null && !exceptions.isEmpty()) {
|
||||||
|
t = exceptions.get(exceptions.size() - 1).getThrowable();
|
||||||
|
}
|
||||||
|
if (!(t instanceof RpcThrottlingException)) {
|
||||||
|
callable.prepare(tries != 0);
|
||||||
|
}
|
||||||
interceptor.intercept(context.prepare(callable, tries));
|
interceptor.intercept(context.prepare(callable, tries));
|
||||||
return callable.call(getTimeout(callTimeout));
|
return callable.call(getTimeout(callTimeout));
|
||||||
} catch (PreemptiveFastFailException e) {
|
} catch (PreemptiveFastFailException e) {
|
||||||
|
|
Loading…
Reference in New Issue