pub struct MemoryCache { /* private fields */ }Expand description
In-memory LRU cache store.
Enforces a maximum byte limit. When the limit is exceeded, the least recently accessed entries are evicted. Thread-safe via Mutex.
Implementations§
Source§impl MemoryCache
impl MemoryCache
Sourcepub fn current_bytes(&self) -> usize
pub fn current_bytes(&self) -> usize
Current memory usage in bytes.
Trait Implementations§
Source§impl CacheStore for MemoryCache
impl CacheStore for MemoryCache
Source§fn put_with_origin(
&self,
key: &CacheKey,
value: &Value,
origin: &Origin,
) -> Result<()>
fn put_with_origin( &self, key: &CacheKey, value: &Value, origin: &Origin, ) -> Result<()>
Overridden because the trait’s default drops the origin, and
MemoryCache is the default store — so unless it records
provenance, most entries in most runs have none. It used to write
Computed { node_id: "", run_id: "" } for everything, which reads
as provenance while carrying none.
Source§fn get(&self, key: &CacheKey) -> Result<Option<Value>>
fn get(&self, key: &CacheKey) -> Result<Option<Value>>
Look up the value stored under
key, None on a miss.Source§fn put(&self, key: &CacheKey, value: &Value) -> Result<()>
fn put(&self, key: &CacheKey, value: &Value) -> Result<()>
Store
value under key, replacing any existing entry.Source§fn exists(&self, key: &CacheKey) -> Result<bool>
fn exists(&self, key: &CacheKey) -> Result<bool>
Whether
key has an entry, without loading the value.Source§fn remove(&self, key: &CacheKey) -> Result<()>
fn remove(&self, key: &CacheKey) -> Result<()>
Delete the entry under
key; absent keys are not an error.Source§fn metadata(&self, key: &CacheKey) -> Result<Option<EntryMeta>>
fn metadata(&self, key: &CacheKey) -> Result<Option<EntryMeta>>
The entry’s [
EntryMeta], without loading the value.§fn put_computed(
&self,
key: &CacheKey,
value: &Value,
origin: &Origin,
compute: Duration,
deterministic: bool,
) -> Result<(), SomaError>
fn put_computed( &self, key: &CacheKey, value: &Value, origin: &Origin, compute: Duration, deterministic: bool, ) -> Result<(), SomaError>
Store a freshly-computed value with its full provenance record:
origin, wall-clock compute cost, and the producer’s determinism
declaration. Cost-aware eviction needs the compute time — a tiny
value that took days must outlive a huge one that took seconds.
The default discards the extra metadata.
§fn get_located(
&self,
key: &CacheKey,
) -> Result<Option<(Value, CacheTier)>, SomaError>
fn get_located( &self, key: &CacheKey, ) -> Result<Option<(Value, CacheTier)>, SomaError>
Like [
CacheStore::get], but also reports which tier served the value. Read moreAuto Trait Implementations§
impl !Freeze for MemoryCache
impl RefUnwindSafe for MemoryCache
impl Send for MemoryCache
impl Sync for MemoryCache
impl Unpin for MemoryCache
impl UnsafeUnpin for MemoryCache
impl UnwindSafe for MemoryCache
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more