Skip to content
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

ClientRetryPolicy: Adds Cross Regional Retry Logic on 429/3092 #4691

Conversation

kundadebdatta
Copy link
Member

Pull Request Template

Description

This PR is covering the below CRI scenario in general:

  • Request Throttled (Status Code: 429) with System Resource Unavailable (Sub Status Code: 3092).

Background:

For 429/3092 (Request Throttled/ SystemResourceUnavailable), we would only want to short-circuit this to retry cross-region quickly when we can actually retry cross region (not a write in single master) - and for reads only when it is returned from all replica in a region. The latter is extremely unlikely - so, I would probably compromise on a pragmatic approach and simply short-circuit by mapping 429/3092 to a 503 for write operations when multi-master is enabled (and there is >1 write regions).
That way we get the cross-region retry in the scenario where this is most critical.

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

Closing issues

To automatically close an issue: closes #4656

@kundadebdatta kundadebdatta self-assigned this Sep 13, 2024
@kundadebdatta kundadebdatta added Do Not Review Marks a PR in "work in progress" state. auto-merge Enables automation to merge PRs labels Sep 13, 2024
@kundadebdatta kundadebdatta marked this pull request as ready for review September 13, 2024 22:47
@kundadebdatta kundadebdatta removed Do Not Review Marks a PR in "work in progress" state. labels Sep 14, 2024
@kundadebdatta kundadebdatta marked this pull request as draft September 14, 2024 05:01
auto-merge was automatically disabled September 14, 2024 05:01

Pull request was converted to draft

@kundadebdatta kundadebdatta marked this pull request as ready for review September 15, 2024 06:44
@microsoft-github-policy-service microsoft-github-policy-service bot merged commit 7839885 into master Sep 17, 2024
21 checks passed
@microsoft-github-policy-service microsoft-github-policy-service bot deleted the users/kundadebdatta/4656_cross_regional_retry_on_429_3092 branch September 17, 2024 18:17
NaluTripician pushed a commit that referenced this pull request Sep 18, 2024
* Initial code changes to throw 503 on 429/3092.

* Updated client retry policy. Added more tests to cover 429/3092.

* Code changes to update direct package version. Updating the tests.

* Code changes to refactor client retry policy.

* Minor code cleanup.

* Reverting the direct version bump up change.

* Code changes to address some of the review comments.

* Code changes to move failover logic in client retry policy.

* Minor code clean up.

* Code changes to clean up some cosmetic items.

* Further clean up.

* Code changes to address review comments.

* Minor refactor to address cosmetic update.

* Code changes to address cosmetic review comment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-merge Enables automation to merge PRs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ICM-537938324 - Analyze the 410-Lease Not Found and Attempt to Fail Faster
3 participants