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

dnsdist: Implement parallel health checks #8491

Merged
merged 1 commit into from Jan 20, 2020

Conversation

rgacogne
Copy link
Member

@rgacogne rgacogne commented Oct 30, 2019

Short description

We used to do health checking sequentially, which could take a long time with a huge list of backends, or simply if several of them were timing out.
This PR implements parallel health checks, we first loop through all the backends we have to check and send them a query, then use multiplexing on the sockets to get the responses, or handle the timeouts if any. This way a single round of checks should only take as long as the greatest timeout of the backends, instead of the total of all timeouts today.

Checklist

I have:

  • read the CONTRIBUTING.md document
  • compiled this code
  • tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)

@rgacogne
Copy link
Member Author

@rgacogne rgacogne commented Nov 12, 2019

Rebased to fix a conflict.

@rgacogne rgacogne merged commit fbb1ae2 into PowerDNS:master Jan 20, 2020
27 checks passed
@rgacogne rgacogne deleted the ddist-parallel-checks branch Jan 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant