"SIEVE is a cache eviction algorithm that decides what to keep in the cache and what to discard. It achieves both simplicity and efficiency." source: https://sievecache.com/ paper : https://junchengyang.com/publication/nsdi24-SIEVE.pdf
example usage: cache0 := lock_free.Sieve_Cache String i32 3 say <| cache0.access "A" ()->1 # => 1 say <| cache0.access "B" ()->2 # => 2 say <| cache0.access "C" ()->3 # => 3 say <| cache0.access "A" ()->4 # => 1 say <| cache0.access "D" ()->5 # => 5 say <| cache0.access "C" ()->6 # => 3
It achieves both simplicity and efficiency."
source: https://sievecache.com/
paper : https://junchengyang.com/publication/nsdi24-SIEVE.pdf
example usage:
cache0 := lock_free.Sieve_Cache String i32 3
say <| cache0.access "A" ()->1 # => 1
say <| cache0.access "B" ()->2 # => 2
say <| cache0.access "C" ()->3 # => 3
say <| cache0.access "A" ()->4 # => 1
say <| cache0.access "D" ()->5 # => 5
say <| cache0.access "C" ()->6 # => 3