Welcome! Log In Create A New Profile

Advanced

consistent hashing for upstreams

March 19, 2012 12:54PM
Has anybody used ngx_http_upstream_consistent_hash with newer nginx releases (>1.0)?

If so, is it possible to use ngx_http_upstream_consistent_hash with HTTP-based back-ends, or does it only work with memcahe backends? The documentation isn't at all clear.

We want to load-balance multiple static file servers behind nginx, and basing the upstream chosen on consistent hash will drastically increase the filesystem cache hit ratios the back-end servers, while preventing a "thundering herd" issue when one fails. Basically you get to use all of your RAM amongst the back ends for cache, rather than having the same objects in the cache of multiple back end servers.

I thought of trying to use map directives and regexes to pick a back end, but handling weighting and failover makes this a complex and therefore brittle approach. Could consistent hashing for upstreams be achieved with embedded lua or perl?

I know HAproxy has consistent hashing features for this use case (as do almost all commercial load balancers), but I would prefer not adding layers to my stack if it can be avoided. We're already using nginx and proxy_cache and it has been rock-solid and stable for us.
Subject Author Posted

consistent hashing for upstreams

rmalayter March 19, 2012 12:54PM

Re: consistent hashing for upstreams

Alexandr Gomoliako March 19, 2012 03:10PM

Re: consistent hashing for upstreams

rmalayter March 19, 2012 05:16PM

Re: consistent hashing for upstreams

Alexandr Gomoliako March 19, 2012 06:10PM

Re: consistent hashing for upstreams

Joshua Zhu March 19, 2012 09:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 263
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready