Fell free to propose a patch with the way you want it to be worded.

Baptiste

On Fri, Nov 4, 2016 at 4:15 PM, komu wairagu <komu...@gmail.com> wrote:

> Hi Baptiste,
>
> That's very helpful.
>
> I wish we could add your examples section to the official
> documentation because it helps clear up the maths.
>
> Komu W.
>
> On 04/11/2016, Baptiste <bed...@gmail.com> wrote:
> > On Fri, Nov 4, 2016 at 3:55 PM, komu wairagu <komu...@gmail.com> wrote:
> >
> >> Hi guys,
> >>
> >> I'm a little confused by the wording on the official haproxy ver1.6
> >> documentation(https://cbonte.github.io/haproxy-dconv/1.6/
> >> configuration.html)
> >> especially as concerning dns resolution.
> >>
> >> Here's a section of my haproxy config:
> >>
> >> ## start config
> >>
> >> resolvers my_dns_resolver
> >>       #Google name servers
> >>       nameserver dns1 8.8.8.8:53
> >>       nameserver dn2 8.8.4.4:53
> >>       resolve_retries       30
> >>       timeout retry         1s
> >>       hold valid           2010
> >>
> >> frontend my_frontend
> >>     bind *:80
> >>     default_backend my_backend
> >>
> >>
> >> backend my_backend
> >>     balance roundrobin
> >>     server my_domain my_domain.com check resolvers my_dns_resolver
> inter
> >> 2000
> >>
> >> ## end config
> >>
> >> So my question is,
> >> How often will haproxy (version 1.6) do a dns resolution? Is it every
> >> 2000 ms(health check interval) or
> >> every 10ms (2010 modulo 2000) ?
> >>
> >> The documenation says:
> >>
> >> `Note: since the name resolution is triggered by the health checks, a
> new
> >>       resolution is triggered after <period> modulo the <inter>
> parameter
> >> of
> >>       the healch check.`
> >>
> >> but I'm getting confused by the wording.
> >> I have two interpretations from reading that documentaion;
> >> 1. dns resolution is triggered by health checks and thus will happen
> >> (<period> modulo the <inter>) milliseconds after the health check.
> >> 2. dns resolution will happen every (<period> modulo the <inter>)
> >> milliseconds.
> >>
> >> So if we start at time 00.00.00.00(hh.mm.ss.ms)
> >> for case 1 above health check happens at 00.00.02.00 and first dns
> >> resolution happens at
> >> 00.00.02.10 and second one at 00.00.04.10 etc
> >> while for case 2 above health check happens at 00.00.02.00  and first
> >> dns resolution happens at
> >> 00.00.02.10 and second one at 00.00.02.20 etc
> >>
> >>
> >> thanks,
> >> Komu W.
> >>
> >>
> >
> > Hi Komu,
> >
> > Technically, HAProxy's internal scheduler will wake up the health check
> > task at <inter> period.
> > Before processing the check itself, HAProxy will check if the last
> > resolution result is obsolete, so it 'now > last-resolution + hold valid'
> > period.
> >
> > This means:
> > - smallest DNS resolution period will be <inter> if DNS resolution period
> > is lower than <inter>
> > - if DNS resolution period is greater than <inter>, then next DNS
> > resolution will be after X times <inter>, X being the rounded ratio
> between
> > <inter> and DNS resolution period
> >
> > With some examples:
> > - inter = 2s, DNS hold valid = 1s, then DNS resolution will happen every
> 2s
> > - inter = 2s, DNS hold valid = 5s, then DNS resolution will happen every
> 6s
> > - inter = 2s, DNS hold valid = 10s, then DNS resolution will happen every
> > 10s
> >
> > Baptiste
> >
>

Reply via email to