Sieve_Cache
lock_free.Sieve_Cache
(K
type
:
property.hashable, V type
, MM type
: container.Mutable_Map K (lock_free.Node K V), capacity i64) ref
:
Any is
¶Type Parameters
Fields
Functions
access stored value for key,
if not in cache, compute and store in cache
if not in cache, compute and store in cache
Comment of Any.as_string
create a String from this instance. Unless redefined, `a.as_string` willcreate `"instance[T]"` where `T` is the dynamic type of `a`
0.099dev (GIT hash a68bce9af280552faedee34cd5433dc10b6454de)
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