libring
libring copied to clipboard
A fast consistent hash ring implementation in Elixir
erpc and nodes show up faster than the applications can start in some cases leading to requests being routed to booting nodes. A workaround is possible in the RPC call,...
Just adding key_to_nodes to allow for replicas
👋 This is a possible fix for #39
Given this ring: ``` iex> ring = HashRing.new() |> HashRing.add_node(:a@localhost) |> HashRing.add_node(:b@localhost) # ``` Request to get a list of `2` nodes for the key `14`: ``` iex> HashRing.key_to_nodes(ring, 14,...
### Summary of changes Previously, the `child_spec/1` function referenced a non-existent run function. This would mean that a child spec such as: {HashRing.Managed, [name: :foo]} Would not work, instead requiring...
Previously, managed hash rings always used a hardcoded weight of 128 for all nodes, preventing operators from tuning the ring's distribution characteristics. The number of virtual nodes (weight) affects distribution...