Mercurial > hg > nginx
changeset 7124:3b4fa572d56d
Upstream hash: reordered peer checks.
This slightly reduces cost of selecting a peer if all or almost all peers
failed, see ticket #1030. There should be no measureable difference with
other workloads.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 05 Oct 2017 17:43:05 +0300 |
parents | 6c52b24fcf8e |
children | b8fc701daf8e |
files | src/http/modules/ngx_http_upstream_hash_module.c src/stream/ngx_stream_upstream_hash_module.c |
diffstat | 2 files changed, 14 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_upstream_hash_module.c Thu Oct 05 17:42:59 2017 +0300 +++ b/src/http/modules/ngx_http_upstream_hash_module.c Thu Oct 05 17:43:05 2017 +0300 @@ -543,13 +543,6 @@ continue; } - if (peer->server.len != server->len - || ngx_strncmp(peer->server.data, server->data, server->len) - != 0) - { - continue; - } - if (peer->max_fails && peer->fails >= peer->max_fails && now - peer->checked <= peer->fail_timeout) @@ -561,6 +554,13 @@ continue; } + if (peer->server.len != server->len + || ngx_strncmp(peer->server.data, server->data, server->len) + != 0) + { + continue; + } + peer->current_weight += peer->effective_weight; total += peer->effective_weight;
--- a/src/stream/ngx_stream_upstream_hash_module.c Thu Oct 05 17:42:59 2017 +0300 +++ b/src/stream/ngx_stream_upstream_hash_module.c Thu Oct 05 17:43:05 2017 +0300 @@ -544,13 +544,6 @@ continue; } - if (peer->server.len != server->len - || ngx_strncmp(peer->server.data, server->data, server->len) - != 0) - { - continue; - } - if (peer->max_fails && peer->fails >= peer->max_fails && now - peer->checked <= peer->fail_timeout) @@ -562,6 +555,13 @@ continue; } + if (peer->server.len != server->len + || ngx_strncmp(peer->server.data, server->data, server->len) + != 0) + { + continue; + } + peer->current_weight += peer->effective_weight; total += peer->effective_weight;