High-performance cache policies and supporting data structures.
Spec maturity: reference
Executable oracle:
tests/abstract_models/exact/heap_lfu.rs(HeapLfuModel); independent reference:reference/heap_lfu.rs(NaiveHeapLfuModel).
Heap-backed LFU: evict the key with minimum frequency; tie-break by key order (Ord).
| Variable | Type | Meaning |
|---|---|---|
freq |
Map<K, ℕ> |
Live frequency per resident key |
heap |
min-heap of (freq, k) |
May contain stale entries; rebuilt when oversized |
capacity |
usize |
Maximum resident count |
freq = ∅, heap = ∅, capacity = C| Observable | Definition |
|---|---|
resident |
Keys in freq |
peek_victim |
Min frequency; smallest K by Ord at ties |
hit |
MustHit / MustMiss |
Insert(k)k ∈ resident: no-op for frequency (value update only in implementation).evicted_on_insert.freq[k] = 1, push to heap.Get(k) / Peek(k)hit. Get increments frequency on hit.GetMut(k) / Touch(k)Touch: increment on hit. GetMut: no-op in adapter.Remove(k) / EvictOnefreq; heap lazily cleaned on eviction/rebuild.K by Ord.standard_op_list (not mfu_safe; rebuild handles staleness).HeapLfuCache