Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Apr 8, 2012
  1. Merge pull request #8 from mikegagnon/master

    fixed off-by-one bug in the calculation of shm_name->len
Commits on Apr 7, 2012
  1. @mikegagnon
Commits on Dec 6, 2011
  1. Merge pull request #4 from pkwarren/issue3

    Fix building against nginx without the --with-debug option specified.
Commits on Nov 11, 2011
  1. Merge pull request #2 from qualtrics/master

    Fixed a bug ngx_http_upstream_fair_sched_score function.
Commits on Oct 27, 2011
  1. Fixed a bug ngx_http_upstream_fair_sched_score function.

    root authored
    In SCHED_SCORE(nreq,delta) (((nreq) << SCHED_COUNTER_BITS) | (~(delta))) the ~(delta) would dominate the "bitwise or", making the calculated score ignore the number of requests the peer is currently processing.
    The fix is to perform a bitwise mask on ~(delta) so it only affect the lower 20bits.
    SCHED_SCORE(nreq,delta) (((nreq) << SCHED_COUNTER_BITS) | (~(delta) & SCHED_COUNTER_MAX))
Commits on Sep 23, 2009
  1. Fix best_sched_score initialisation on 64-bit architectures

    Thanks to Victor Lavrenko for reporting, analysing and providing
    a patch.
Commits on Oct 12, 2008
  1. Silly logic bug in idle/no_rr mode checking

    Yay for De Morgan's laws.
Commits on Oct 5, 2008
Commits on Sep 22, 2008
Commits on Sep 21, 2008
  1. Don't store pointers inside the shm segment at all

    (an exceptional use-case is the status handler but it takes care
    to do things safely)
  2. Debug message tweaks

Commits on Sep 20, 2008
  1. weight_mode=(idle|peak) parameter support

    Weight mode 'idle' means that a backend is considered idle when
    servicing less than 'weight' requests. This has special meaning
    when running in no_rr mode. The backends are chosen from the
    following groups with descending priority:
     - backends with 1 <= nreq <= weight (by descending nreq)
     - totally idle backends
     - all other (busy) backends
    This mode (idle+no_rr) is particularly suited to small setups
    with backends started on demand. It requires care in bigger
    installations, as it may overload a range of backends without ever
    using others.
    Weight mode 'peak' means that no backend may serve more than 'weight'
    requests at once. Once this limit is reached, nginx starts to return
    502 errors. This is useful when you want to limit the load on your
    backends at the price of errors sent to the client (although this
    might be an advantage in e.g. tiered load balancer setups).
    So the distinct modes of upstream_fair operation are:
     * default
     * no_rr
     * no_rr weight_mode=idle
     * weight_mode=peak
    All other combinations are more or less pointless, at least for now.
Commits on Sep 18, 2008
Commits on Sep 16, 2008
  1. Use monotonic request counter instead of time data, track total numbe…

    …r of requests per upstream and per backend
  2. The `fair' directive now takes parameters.

    Currently the only parameter is `no-rr' which disables round-robin
    behaviour, i.e. if you only need X backends to keep up with your peak
    load, backends X+1 should never receive any requests.
    Note that this does make the load balancer unfair as requests are
    definitely not distributed evenly.
Commits on Jun 29, 2008
  1. --with-extended-status support in upstream_fair

    The data returned is more for debugging purposes than real production
    monitoring, so this is still proof-of-concept stage.
Commits on Jun 26, 2008
  1. Fix compile error on some platforms

    Reported by Jeff Berg
Commits on Jun 18, 2008
  1. Update gdb macros

  2. Copy the last required bits from rr to upstream_fair

    upstream_fair is now completely independent from the round robin module
    (except of course of lots of copy-pasted code).
Commits on Jun 15, 2008
  1. Ensure proper nreq tracking

Commits on Jun 14, 2008
Something went wrong with that request. Please try again.