#consistent-hashing #system

keyspace

Dynamic key space partitioning and re-balancing for distributed systems

16 releases

Uses new Rust 2024

new 0.2.0 May 24, 2025
0.1.13 May 10, 2025
0.0.1 May 3, 2025

#1182 in Algorithms

Download history 776/week @ 2025-05-02 306/week @ 2025-05-09 17/week @ 2025-05-16

1,099 downloads per month

MIT license

7KB

keyspace

crates.io docs.rs

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.

No runtime deps