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
    committed Apr 8, 2012
Commits on Apr 7, 2012
Commits on Dec 6, 2011
  1. Merge pull request #4 from pkwarren/issue3

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

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

    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))
    root committed Oct 27, 2011
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.
    committed Sep 23, 2009
Commits on Oct 12, 2008
  1. Silly logic bug in idle/no_rr mode checking

    Yay for De Morgan's laws.
    committed Oct 12, 2008
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)
    committed Sep 21, 2008
  2. Debug message tweaks

    committed Sep 21, 2008
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.
    committed Sep 20, 2008
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
    committed Sep 16, 2008
  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.
    committed Sep 16, 2008
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.
    committed Jun 29, 2008
Commits on Jun 26, 2008
  1. Fix compile error on some platforms

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

    committed Jun 18, 2008
  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).
    committed Jun 18, 2008
Commits on Jun 15, 2008
  1. Ensure proper nreq tracking

    committed Jun 15, 2008
Commits on Jun 14, 2008
  1. Better tries and weight tracking

    committed Jun 14, 2008