asura 0.3.0

ASURA implementation in Rust
Documentation
# ASURA

[![Crates.io](https://img.shields.io/crates/v/asura.svg)](https://crates.io/crates/asura)
[![documentation](https://docs.rs/asura/badge.svg)](https://docs.rs/asura)

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

![](https://xn----kx8am9osvhcni7kau6dfv3e.jinja-tera-gosyuin-meguri.com/wp-content/uploads/2019/01/37e22bc93935f5633fde07e8280f775c.jpg)

## 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.

![](algorithm-segments.png)

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](https://arxiv.org/ftp/arxiv/papers/1309/1309.7720.pdf).

## Author

Akira Hayakawa (ruby.wktk@gmail.com)