-
Notifications
You must be signed in to change notification settings - Fork 9.2k
HADOOP-19096: [Backport to 3.4][ABFS] [CST Optimization] Enhancing Client-Side Throttling Metrics Updating Logic #6720
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
Conversation
…g Metrics Logic (apache#6276) ABFS has a client-side throttling mechanism which works on the metrics collected from past requests When requests are fail due to server-side throttling it updates its metrics and recalculates any client side backoff. The choice of which requests should be used to compute client side backoff interval is based on the http status code: - Status code in 2xx range: Successful Operations should contribute. - Status code in 3xx range: Redirection Operations should not contribute. - Status code in 4xx range: User Errors should not contribute. - Status code is 503: Throttling Error should contribute only if they are due to client limits breach as follows: * 503, Ingress Over Account Limit: Should Contribute * 503, Egress Over Account Limit: Should Contribute * 503, TPS Over Account Limit: Should Contribute * 503, Other Server Throttling: Should not Contribute. - Status code in 5xx range other than 503: Should not Contribute. - IOException and UnknownHostExceptions: Should not Contribute. Contributed by Anuj Modi
|
:::: AGGREGATED TEST RESULT :::: ============================================================
|
|
@steveloughran |
|
🎊 +1 overall
This message was automatically generated. |
|
+1, merged to 3.4. |
Description of PR
Jira: https://issues.apache.org/jira/browse/HADOOP-19096
Commit in trunk: dbe2d61
ABFS has a client-side throttling mechanism which works on the metrics collected from past requests made. I requests are getting failed due to throttling at server, we update our metrics and client side backoff is calculated based on those metrics.
This PR enhances the logic to decide which requests should be considered to compute client side backoff interval as follows:
For each request made by ABFS driver, we will determine if they should contribute to Client-Side Throttling based on the status code and result:
Status code in 2xx range: Successful Operations should contribute.
Status code in 3xx range: Redirection Operations should not contribute.
Status code in 4xx range: User Errors should not contribute.
Status code is 503: Throttling Error should contribute only if they are due to client limits breach as follows:
503, Ingress Over Account Limit: Should Contribute
503, Egress Over Account Limit: Should Contribute
503, TPS Over Account Limit: Should Contribute
503, Other Server Throttling: Should not Contribute.
Status code in 5xx range other than 503: Should not Contribute.
IOException and UnknownHostExceptions: Should not Contribute.