Hello,

OK they're both released today : 1.3.21 and 1.4-dev4

1.3.21 contains all the minor fixes and improvements I talked
about last week, plus a few ACLs that were missing (ability to
match on a backend's queue length).

I'd like it if distro maintainers would update to 1.3.21, as some
of them are still in 1.3.19 which contains the bug that can cause
a crash on missing timeout. Also, given we have not fixed a single
major bug between .20 and .21, I think it proves that we have reached
a high level of stability and newer 1.3 versions should become rare.
Even 1.4 remains very stable, which is nice, considering the amount
of changes it has received. I think that the internal architecture
changes have helped a lot to get rid of many tricks that were needed
to get something to work in old versions.

1.4-dev4 has received some eye-candy updates to the stats page,
mostly coming from Krzysztof. Precise server health status is now
reported there, which can be very convenient for finding why a server
is seen as down. Stats can be reported per listening socket, which
is very convenient when you have multiple ISP accesses and are able
to create one "bind" line for each of them. Take a look at the demo
page, I have splitted IPv4 and IPv6 for instance.

Also, we now have the ability to clear the stats without restarting,
as well as to change a server's weight live without restarting (which
includes setting its weight to zero to disable it).

Another change concerns the load-balancing algorithms. They have
been reorganized and a new hasing method was implemented : consistent
hashing[1]. This was already discussed several months ago, but I was
against it since it would cost a lot of CPU. I finally found how to
implement it with trees so that it's cheap. The advantage of this
hashing method is that you can add or remove servers with limited
redistribution. This is mainly used for caches, where we don't want
a cache failure to suddenly redistribute all the objects to caches
which don't have them. The hash is not as smooth as the old one,
but still not bad at all. The hashing method can be selected using
the new "hash-type" keyword. This rework was the opportunity to
reintroduce the old static round-robin algorithm, which has the
advantage over the dynamic one to support more than 4000 servers
(I know some people already have close to 1000 servers in a single
backend).

Next development version should focus a bit on QoS and on improved
detection of failures.

As usual, sources, doc and binaries for 1.3 are available here :

   http://haproxy.1wt.eu/download/1.3/

And sources for 1.4 are available here :

   http://haproxy.1wt.eu/download/1.4/


Happy update,
Willy

[1] 
http://www.spiteful.com/2008/03/17/programmers-toolbox-part-3-consistent-hashing/


Reply via email to