consistent hashing for upstreams
rmalayter
nginx-forum at nginx.us
Mon Mar 19 21:16:09 UTC 2012
Alexandr Gomoliako Wrote:
> Here's a simple approach on consistent hashing
> with embedded perl:
> https://gist.github.com/2124034
Interesting. Clearly one could generate the upstream blocks via script.
The only potential issues I foresee are:
1) performance, as this perl will be called for 1000+ requests per
second, and there are going to be potentially many upstream blocks.
Maybe Digest::MurmurHash would help with performance instead of MD5
(it's supposedly 3x faster in Perl than Digest::MD5 while using far less
state). A native hash ring implementation in C would obviously be far
more performant.
2) a single backup server is problematic, but that can be fixed by
adding more backups to the upstream blocks I think, or doing an error
location that hashes again to find a new upstream. Not sure if a server
being down would cause it to fail inside all upstream blocks it appears
though, which might mean some very slow responses when a server goes
offline.
3) Perl module is still marked as experimental, which scares me
I will give it a good long-term load test though, it might just be good
enough!
Thanks!
--
RPM
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,224038,224045#msg-224045
More information about the nginx
mailing list