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

refactor: replace QLC with plain `ets:select/{1,3}` #352

Closed hauleth closed 2 months ago

hauleth commented 2 months ago

This should remove requirement for indirection that happen with QLC process and should reduce need for additional data copy between QLC and target process.

hauleth commented 2 months ago

Does Cachix need to still support Elixir 1.7-1.9? These versions are long not supported.

whitfin commented 2 months ago

Hi @hauleth!

Yes, Cachex will continue to support v1.7+ (technically it supports back to v1.5 even!). In this case Function.identity/1 provides such minimal value that it's not worth changing the compatibility table for.

That being said this PR seems good (if that's updated) and I'm happy to merge and include in the next release!

hauleth commented 2 months ago

@whitfin done. Also - I hope that you are hefty compensated for keeping that compatibility with so old Elixir releases.

whitfin commented 2 months ago

Awesome, ty @hauleth - just so you know this is all good to go, I'm just holding on merging because I want to land this alongside a fix for #329 to remove all QLC in one sweep.