12 releases
Uses new Rust 2024
new 0.1.10 | May 5, 2025 |
---|---|
0.1.9 | May 5, 2025 |
0.0.1 | May 3, 2025 |
#1010 in Algorithms
213 downloads per month
Used in mpchash
7KB
keyspace
Key space partitioning and re-balancing for distributed systems.
Motivation
Implement a key space partitioning and re-balancing algorithm that is:
- Memory/space efficient: scalable, no virtual nodes, for instance.
- Fair: data is evenly distributed across partitions.
- Compact: to compute the target node of a key, we only need to know the number of nodes
n
. - Adaptive: supports node addition and removal, with close to theoretically minimal data movement.
- Robust: supports replication out of the box.
- Heterogeneous: supports heterogeneous nodes (e.g. different storage capacities).
The idea is to allow system to grow to thousands of nodes, and to process millions of keys per second efficiently.