-
Notifications
You must be signed in to change notification settings - Fork 3.3k
HBASE-29265: Batch calls to overloaded cluster can cause meta hotspotting #6961
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: branch-2
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@@ -783,8 +787,7 @@ private void receiveGlobalFailure(MultiAction rsActions, ServerName server, int | |||
// any of the regions in the MultiAction and do not update cache if exception is | |||
// from failing to submit action to thread pool | |||
if (clearServerCache) { | |||
updateCachedLocations(server, regionName, row, | |||
ClientExceptionsUtil.isMetaClearingException(t) ? null : t); | |||
updateCachedLocations(server, regionName, row, t); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also solves the frustration of seeing "UnknownException" when inspecting meta cache clear exception metrics. This has made it quite difficult to track down what triggered the meta cache clear.
I think it's always better to provide more context than less. Even if an exception is meta cache clearing (though it will be now), I'd still prefer to know the exact exception type that cleared the meta cache.
errorsByServer.reportServerError(server); | ||
Retry canRetry = errorsByServer.canTryMore(numAttempt) ? Retry.YES : Retry.NO_RETRIES_EXHAUSTED; | ||
boolean clearServerCache = false; | ||
|
||
if (!(t instanceof RejectedExecutionException)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enforces the constraints added in https://issues.apache.org/jira/browse/HBASE-27491
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be better if you instead push RejectedExecutionException
down into ClientExceptionsUtil.isMetaClearingException
.
How about adding another collection of execution-exceptions for the family of various ExecutorService interaction errors, like is done with networking/connection exceptions?
π +1 overall
This message was automatically generated. |
π +1 overall
This message was automatically generated. |
π +1 overall
This message was automatically generated. |
π +1 overall
This message was automatically generated. |
No description provided.