haproxy/include/types
Krzysztof Oledzki b304dc7fd7 [MEDIUM] Spread health checks even more
When one server appears at the same position in multiple backends, it
receives all the checks from all the backends exactly at the same time
because the health-checks are only spread within a backend but not
globally.

Attached patch implements per-server start delay in a different way.
Checks are now spread globally - not locally to one backend. It also makes
them start faster - IMHO there is no need to add a 'server->inter' when
calculating first execution. Calculation were moved from cfgparse.c to
checks.c. There is a new function start_checks() and now it is not called
when haproxy is started in MODE_CHECK.

With this patch it is also possible to set a global 'spread-checks'
parameter. It takes a percentage value (1..50, probably something near
5..10 is a good idea) so haproxy adds or removes that many percent to the
original interval after each check. My test shows that with 18 backends,
54 servers total and 10000ms/5% it takes about 45m to mix them completely.

I decided to use rand/srand pseudo-random number generator. I am aware it
is not recommend for a good randomness but a) we do not need a good random
generator here b) it is probably the most portable one.
2007-10-15 09:33:10 +02:00
..
acl.h [MEDIUM] acl: support '-i' to ignore case when matching 2007-06-17 08:20:33 +02:00
backend.h [MINOR] add the "nolinger" option to disable data lingering 2007-10-15 09:33:06 +02:00
buffers.h [BUG] do not re-arm read timeout after writing data 2007-06-03 16:03:49 +02:00
capture.h [MAJOR] last bunch of capture changes for mempool v2 2007-05-13 22:46:04 +02:00
client.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
fd.h [MAJOR] replaced all timeouts with struct timeval 2007-05-12 22:35:00 +02:00
global.h [MEDIUM] Spread health checks even more 2007-10-15 09:33:10 +02:00
hdr_idx.h [BUG] files were missing for hdr_idx in previous commit 2006-12-04 02:20:02 +01:00
httperr.h [MAJOR] udpated the stats page to clearly distinguish FEs and BEs 2007-01-01 21:38:07 +01:00
log.h [MAJOR] ported requri to use mempools v2 2007-05-13 21:36:56 +02:00
polling.h [MAJOR] introduced speculative I/O with epoll() 2007-04-16 00:53:59 +02:00
proto_http.h [MEDIUM] acl: implement matching on header values 2007-06-10 19:45:56 +02:00
proxy.h [MAJOR] remove files distributed under an obscure license 2007-09-09 21:56:53 +02:00
queue.h [MAJOR] ported pendconn to mempools v2 2007-05-13 20:19:55 +02:00
server.h [MINOR] changed server weight storage from char to unsigned int 2007-03-25 21:16:40 +02:00
session.h [MEDIUM] stats page: added links for 'refresh' and 'hide down' 2007-09-09 21:09:29 +02:00
task.h [MAJOR] migrated task, tree64 and session to pool2 2007-05-13 19:43:47 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00