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++) {