Re: confusion over dns resolution

2016-11-07 Thread Baptiste
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  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  wrote:
> > On Fri, Nov 4, 2016 at 3:55 PM, komu wairagu  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  modulo the 
> 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
> >> ( modulo the ) milliseconds after the health check.
> >> 2. dns resolution will happen every ( modulo the )
> >> 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  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  if DNS resolution period
> > is lower than 
> > - if DNS resolution period is greater than , then next DNS
> > resolution will be after X times , X being the rounded ratio
> between
> >  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
> >
>


Re: confusion over dns resolution

2016-11-04 Thread komu wairagu
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  wrote:
> On Fri, Nov 4, 2016 at 3:55 PM, komu wairagu  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  modulo the  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
>> ( modulo the ) milliseconds after the health check.
>> 2. dns resolution will happen every ( modulo the )
>> 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  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  if DNS resolution period
> is lower than 
> - if DNS resolution period is greater than , then next DNS
> resolution will be after X times , X being the rounded ratio between
>  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
>



Re: confusion over dns resolution

2016-11-04 Thread Baptiste
On Fri, Nov 4, 2016 at 3:55 PM, komu wairagu  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  modulo the  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
> ( modulo the ) milliseconds after the health check.
> 2. dns resolution will happen every ( modulo the )
> 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  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  if DNS resolution period
is lower than 
- if DNS resolution period is greater than , then next DNS
resolution will be after X times , X being the rounded ratio between
 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