]> git.ipfire.org Git - thirdparty/pdns.git/commit
dnsdist: Implement a 'lazy' health-checking mode
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 4 Oct 2022 17:13:32 +0000 (19:13 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 20 Oct 2022 12:30:54 +0000 (14:30 +0200)
commite3ab12d9ffad04ce80207bc6e8c656b5e667aa7c
treeab7fbd2393030e39b7a9e2afd0642ac4084ad83c
parent45a20555d7837214e78e5697fd122a40fc14e357
dnsdist: Implement a 'lazy' health-checking mode

The general idea is that, on some low-end devices, we want to avoid
sending health-check queries to the backend at a regular interval,
as this might represent an order of magnitude more queries than
regular traffic.
To do that we instead look at the amount of timeouts and Server Failure
errors occurring with regular queries, and only start doing active
health-checking if these errors reach a certain threshold, temporarily
placing the backend in a 'potential failure' state.
If the health-check queries succeed, we quickly go back to the previous
'Healthy' state and stop sending health-check queries. Otherwise we
place the backend in 'Failed' state and keep sending health-check queries
but a reduced rate, as long as the backend is failing.
16 files changed:
pdns/dnsdist-lua-bindings.cc
pdns/dnsdist-lua.cc
pdns/dnsdist-snmp.cc
pdns/dnsdist-snmp.hh
pdns/dnsdist.cc
pdns/dnsdist.hh
pdns/dnsdistdist/dnsdist-backend.cc
pdns/dnsdistdist/dnsdist-healthchecks.cc
pdns/dnsdistdist/dnsdist-healthchecks.hh
pdns/dnsdistdist/dnsdist-nghttp2.cc
pdns/dnsdistdist/dnsdist-tcp-downstream.cc
pdns/dnsdistdist/dnsdist-tsan.supp
pdns/dnsdistdist/docs/guides/downstreams.rst
pdns/dnsdistdist/docs/imgs/DNSDistLazyHealthChecks.png [new file with mode: 0644]
pdns/dnsdistdist/docs/reference/config.rst
pdns/test-dnsdist_cc.cc