Expand description
Algorithm-specific metadata types.
Provides metadata structures for each cache algorithm:
LfuMeta: Frequency counter for LFULfudaMeta: Frequency for LFUDA (age is cache-global)SlruMeta: Segment location for SLRUGdsfMeta: Frequency and priority for GDSF Algorithm-Specific Metadata Types
This module provides metadata types used by different cache algorithms.
Each cache algorithm that needs per-entry metadata defines its own type here,
which can be used with CacheEntry<K, V, M>.
§Metadata Types
| Algorithm | Metadata Type | Description |
|---|---|---|
| LRU | () (none) | Position in list is implicit |
| LFU | LfuMeta | Access frequency counter |
| LFUDA | LfudaMeta | Access frequency (age is cache-global) |
| SLRU | SlruMeta | Segment location (probationary/protected) |
| GDSF | GdsfMeta | Frequency and calculated priority |
§Memory Overhead
| Metadata Type | Size |
|---|---|
() | 0 bytes |
LfuMeta | 8 bytes |
LfudaMeta | 8 bytes |
SlruMeta | 1 byte (+ padding) |
GdsfMeta | 16 bytes |
§Usage
use cache_rs::meta::{LfuMeta, SlruSegment, SlruMeta, GdsfMeta};
// LFU metadata with initial frequency
let lfu_meta = LfuMeta::default();
assert_eq!(lfu_meta.frequency, 0);
// SLRU metadata for probationary segment
let slru_meta = SlruMeta::new(SlruSegment::Probationary);
assert_eq!(slru_meta.segment, SlruSegment::Probationary);
// GDSF metadata with initial values
let gdsf_meta = GdsfMeta::default();
assert_eq!(gdsf_meta.frequency, 0);
assert_eq!(gdsf_meta.priority, 0.0);Structs§
- Gdsf
Meta - Metadata for GDSF (Greedy Dual-Size Frequency) cache entries.
- LfuMeta
- Metadata for LFU (Least Frequently Used) cache entries.
- Lfuda
Meta - Metadata for LFUDA (LFU with Dynamic Aging) cache entries.
- Slru
Meta - Metadata for SLRU (Segmented LRU) cache entries.
Enums§
- Slru
Segment - Segment location within an SLRU cache.