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

feat(resolver): race UDP and TCP when connecting upstream #1302

Merged
merged 1 commit into from
Dec 19, 2023

Conversation

ThinkChaos
Copy link
Collaborator

Inspired by https://en.wikipedia.org/wiki/Happy_Eyeballs this should improve latency and fixes the long standing behavior where a single resolve attempt could take 2x the timeout.
UpstreamResolver.Resolve can still take more than the configured timeout so maybe that can be improved by splitting the retry algorithm into its own resolver type.

Fixes #1266

Inspired by https://en.wikipedia.org/wiki/Happy_Eyeballs this should
improve latency and fixes the long standing behavior where a single
resolve attempt could take 2x the timeout.
UpstreamResolver.Resolve can still take more than the configured timeout
so maybe that can be improved by splitting the retry algorithm into its
own resolver type.
@ThinkChaos ThinkChaos added this to the v0.23 milestone Dec 13, 2023
Copy link
Owner

@0xERR0R 0xERR0R left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@0xERR0R 0xERR0R added the 🔨 enhancement New feature or request label Dec 19, 2023
@ThinkChaos ThinkChaos merged commit df8c373 into 0xERR0R:main Dec 19, 2023
9 checks passed
@ThinkChaos ThinkChaos deleted the feat/race-tcp-udp branch January 18, 2024 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨 enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Race TCP and UDP upstream connections instead of trying sequentially
2 participants