11 releases
0.3.0 | Oct 4, 2019 |
---|---|
0.2.3 | Oct 3, 2019 |
0.2.1 | Jul 28, 2017 |
0.2.0 | Jan 29, 2017 |
0.1.5 | Jan 28, 2017 |
#1175 in Algorithms
1,033 downloads per month
Used in 2 crates
(via frugalos_config)
20KB
341 lines
rendezvous_hash
A Rust implementation of Rendezvous (a.k.a, highest random weight) hashing algorithm.
References
- Rendezvous hashing (Wikipedia)
- Weighted Distributed Hash Tables
- This paper describes an efficient method for calculating consistent hash values for heterogeneous nodes.
An Informal Benchmark
$ cat /proc/cpuinfo | grep 'model name' | head -1
model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
$ uname -a
Linux ubuntu 4.8.0-34-generic #36-Ubuntu SMP Wed Dec 21 17:24:18 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ cargo run --release --example bench -- /usr/share/dict/words --nodes Rust Alef C++ Camlp4 CommonLisp Erlang Haskell Hermes Limbo Napier Napier88 Newsqueak NIL Sather StandardML
WORD COUNT: 99156
NODE COUNT: 15
SELECTED COUNT PER NODE:
- Napier88: 6711
- Haskell: 6607
- StandardML: 6622
- CommonLisp: 6621
- Newsqueak: 6693
- C++: 6605
- Sather: 6495
- Limbo: 6704
- Camlp4: 6536
- Erlang: 6594
- Napier: 6685
- Rust: 6568
- NIL: 6514
- Hermes: 6667
- Alef: 6534
ELAPSED: 84 ms
WORDS PER SECOND: 1177303