3 releases (breaking)

0.3.0 Feb 24, 2022
0.2.0 Feb 24, 2022
0.1.0 Feb 23, 2022

#1620 in Algorithms

MIT license

250 lines


Crates.io documentation

ASURA implementation in Rust. A better alternative of Consistent-hashing.

What is ASURA?

ASURA, like best-known consistent-hashing, is an algorithm to compute the placement node from a key. ASURA is a abbreviation of Advanced Scalable and Uniform storage by Random number Algorithm.

The basic: ASURA is a class of Monte Carlo method because it uses random number to choose the placement node. Nodes are mapped to segments (non-overlapping but allowing gaps) and it generates random numbers until hit one.

The core of the ASURA is ASURA random number generator. Because of the property, we can add or remove a node without changing most of the previous placements just like consistent-hashing.

For more detail, you can read the paper here: https://arxiv.org/ftp/arxiv/papers/1309/1309.7720.pdf.


Akira Hayakawa (ruby.wktk@gmail.com)


~12K SLoC