Mercurial > hg > nginx
comparison src/http/modules/ngx_http_upstream_least_conn_module.c @ 5831:575175ebf4b4
Upstream: included backup peers into peer.tries.
Since peer.tries is never reset it can now be limited if required.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Fri, 12 Sep 2014 18:50:46 +0400 |
parents | 1d68b502088c |
children | 6ff0ebd6fbf4 |
comparison
equal
deleted
inserted
replaced
5830:3e5b630e0ec9 | 5831:575175ebf4b4 |
---|---|
297 m = (uintptr_t) 1 << p % (8 * sizeof(uintptr_t)); | 297 m = (uintptr_t) 1 << p % (8 * sizeof(uintptr_t)); |
298 | 298 |
299 lcp->rrp.tried[n] |= m; | 299 lcp->rrp.tried[n] |= m; |
300 lcp->conns[p]++; | 300 lcp->conns[p]++; |
301 | 301 |
302 if (pc->tries == 1 && peers->next) { | |
303 pc->tries += peers->next->number; | |
304 } | |
305 | |
306 return NGX_OK; | 302 return NGX_OK; |
307 | 303 |
308 failed: | 304 failed: |
309 | 305 |
310 if (peers->next) { | 306 if (peers->next) { |
312 "get least conn peer, backup servers"); | 308 "get least conn peer, backup servers"); |
313 | 309 |
314 lcp->conns += peers->number; | 310 lcp->conns += peers->number; |
315 | 311 |
316 lcp->rrp.peers = peers->next; | 312 lcp->rrp.peers = peers->next; |
317 pc->tries = lcp->rrp.peers->number; | |
318 | 313 |
319 n = (lcp->rrp.peers->number + (8 * sizeof(uintptr_t) - 1)) | 314 n = (lcp->rrp.peers->number + (8 * sizeof(uintptr_t) - 1)) |
320 / (8 * sizeof(uintptr_t)); | 315 / (8 * sizeof(uintptr_t)); |
321 | 316 |
322 for (i = 0; i < n; i++) { | 317 for (i = 0; i < n; i++) { |