An official read-only mirror of http://hg.nginx.org/nginx/ which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to nginx is via the nginx development mailing list, see http://nginx.org/en/docs/contributing_changes.html
Go to file
Maxim Dounin 52327e0627 Upstream: smooth weighted round-robin balancing.
For edge case weights like { 5, 1, 1 } we now produce { a, a, b, a, c, a, a }
sequence instead of { c, b, a, a, a, a, a } produced previously.

Algorithm is as follows: on each peer selection we increase current_weight
of each eligible peer by its weight, select peer with greatest current_weight
and reduce its current_weight by total number of weight points distributed
among peers.

In case of { 5, 1, 1 } weights this gives the following sequence of
current_weight's:

     a  b  c
     0  0  0  (initial state)

     5  1  1  (a selected)
    -2  1  1

     3  2  2  (a selected)
    -4  2  2

     1  3  3  (b selected)
     1 -4  3

     6 -3  4  (a selected)
    -1 -3  4

     4 -2  5  (c selected)
     4 -2 -2

     9 -1 -1  (a selected)
     2 -1 -1

     7  0  0  (a selected)
     0  0  0

To preserve weight reduction in case of failures the effective_weight
variable was introduced, which usually matches peer's weight, but is
reduced temporarily on peer failures.

This change also fixes loop with backup servers and proxy_next_upstream
http_404 (ticket #47), and skipping alive upstreams in some cases if there
are multiple dead ones (ticket #64).
2012-05-14 09:57:20 +00:00
auto Configure: fixed msghdr.msg_control test on 64bit platforms. 2012-03-28 12:38:03 +00:00
conf Added the HTTPS fastcgi_param to fastcgi.conf. 2011-12-25 19:15:56 +00:00
contrib nginx-0.3.55-RELEASE import 2006-07-28 15:16:17 +00:00
docs nginx-1.2.0-RELEASE 2012-04-23 13:06:47 +00:00
misc Update openssl used for win32 builds. 2012-04-23 11:05:21 +00:00
src Upstream: smooth weighted round-robin balancing. 2012-05-14 09:57:20 +00:00
.hgtags release-1.2.0 tag 2012-04-23 13:07:07 +00:00