tugrul512bit / VirtualMultiArray

C++ virtual-array implementation that uses all graphics cards in system as storage (with LRU cache eviction on RAM) and uses OpenCL for data transfers. (Random access: faster than HDD) (Sequential access: faster than SSD) (big objects: faster than NVMe)
GNU General Public License v3.0
15 stars 3 forks source link

Possibly a good/better LRFU cache? #3

Open Logic-Elliven opened 2 years ago

Logic-Elliven commented 2 years ago

Hi tugrul512bit :)

Again; I'm no dev, so just thought you may find this interesting/useful:

"...The weak-lru-cache package provides a powerful cache that works in harmony with the JS garbage collection (GC) and least-recently used (LRU) and least-freqently used (LFU) expiration strategy to help cache data with highly optimized cache retention.

It uses LRU/LFU (LRFU) expiration to retain referenced data, and then once data has been inactive, it uses weak references (and finalization registry) to allow GC to remove the cached data as part of the normal GC cycles, but still continue to provide cached access to the data as long as it still resides in memory and hasn't been collected.

This provides the best of modern expiration strategies combined with optimal GC interaction..."

https://github.com/kriszyp/weak-lru-cache

tugrul512bit commented 1 year ago

LRU is really too naive for advanced tasks. Needs some more options for different access patterns of course. Hybrid approach with probably ai-driven choices of expiration could also be fast for some cases. But there needs to be a quick-access to data with as least compute as possible or at least vectorized if possible.