whitfin / cachex

A powerful caching library for Elixir with support for transactions, fallbacks and expirations
https://hexdocs.pm/cachex/
MIT License
1.6k stars 103 forks source link

Migrate from using jump hashing to libring #344

Closed whitfin closed 2 months ago

whitfin commented 7 months ago

One thing people have asked for the most is the ability to dynamically modify the nodes in a cache (#246). This is basically impossible to do cleanly with the current jump hash implementation, because we can't remove nodes from a cluster without creating hotspots.

One way to begin to move in this direction is to move to something like libring (or even just use this lib). It's more resistant to changing the underlying node structure, and we can then implement addition/removal of nodes on top of this library instead of including it manually.