[Serve] Make long poll wait for non-existent keys #19205
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why are these changes needed?
This makes long poll host wait for non-existent keys instead of immediately erroring and trigger client to immediately retries. The original issue happened because a deployment takes a long time to startup, but http proxy already created the handles for those deployments and tries to pull the
REPLICA_HANDLES
for the deployments. The handles key doesn't exist as deployment pending, so long poll client keep retries and cause a lot of exceptions (key not found) in controller and it being retried every 50ms or so.Related issue number
Closes #19201
Checks
scripts/format.sh
to lint the changes in this PR.