mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-11 09:12:54 +02:00
89c6b67a8241cdc56b42ecea52983e632f00b3bc
In 2.6-dev1, the method used to decide how many pool entries could be released at once was revisited to support releases in batches. This was done with commits91a8e28f9("MINOR: pool: add a function to estimate how many may be released at once") and361e31e3f("MEDIUM: pool: compute the number of evictable entries once per pool"). The first commit takes care of the possible inconsistency between the moment the allocated count and the used count are read, but unfortunately fixed it the wrong way, by adjusting "used" to match "alloc" whenever it was lower (i.e. almost always). This results in a nasty case which is that as soon as the allocated value becomes higher than the estimated count of needed entries, we end up returning pool->minavail, which causes very small batches to be released, starting from commit1513c5479("MEDIUM: pools: release cached objects in batches"). The problem was further amplified in 2.9-dev3 with commit7bf829ace("MAJOR: pools: move the shared pool's free_list over multiple buckets") because it now becomes possible for a thread to allocate from one bucket and release into a few other different ones, causing an accumulation of entries in that bucket. The fix is trivial, simply adjust the alloc counter if the used one is higher, before performing operations. This must be backported to 2.6.
…
…
…
…
…
…
…
…
…
…
…
…
…
…
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
haproxy public development tree. Unstable code.
cachecachingddos-mitigationfastcgihaproxyhigh-availabilityhigh-performancehttphttp2httpsipv6load-balancerproxyproxy-protocolreverse-proxytls13
Readme
249 MiB
Languages
C
98%
Shell
0.9%
Makefile
0.5%
Lua
0.2%
Python
0.2%