Fuzion Logo
fuzion-lang.dev — The Fuzion Language Portal

Sieve_Cache

lock_free.Sieve_Cache

(K 
type
:
property.hashable, V 
type
, capacity i32)
 ref
:
Any
 is
[Contains abstract features]
"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

Type Parameters

Fields

capacity
 i32

Functions

(key lock_free.Sieve_Cache.K, val Function lock_free.Sieve_Cache.V)
 => 
lock_free.Sieve_Cache.V
[Contains abstract features]
access stored value for key,
if not in cache, compute and store in cache
 => 
String
[Redefinition of  Any.as_string]
[Contains abstract features]

redefines:

0.094dev (2025-06-18 15:08:51 GIT hash 89cffc23ae669b0898a5564fefbf793fcb8e5ca7 built by fridi@fzen)