pub struct HotCache { /* private fields */ }Expand description
L1 Hot Cache - In-memory with LRU/LFU eviction
Implementations§
Source§impl HotCache
impl HotCache
Sourcepub fn new(
max_size: usize,
max_entry_size: usize,
policy: EvictionPolicy,
) -> Self
pub fn new( max_size: usize, max_entry_size: usize, policy: EvictionPolicy, ) -> Self
Create a new hot cache
Sourcepub fn get(
&self,
fingerprint: &QueryFingerprint,
_session: SessionId,
) -> Option<CacheEntry>
pub fn get( &self, fingerprint: &QueryFingerprint, _session: SessionId, ) -> Option<CacheEntry>
Get an entry from the cache
Sourcepub fn insert(
&self,
fingerprint: QueryFingerprint,
entry: CacheEntry,
session: Option<SessionId>,
)
pub fn insert( &self, fingerprint: QueryFingerprint, entry: CacheEntry, session: Option<SessionId>, )
Insert an entry into the cache
Sourcepub fn invalidate_by_table(&self, table: &str)
pub fn invalidate_by_table(&self, table: &str)
Invalidate entries for a table
Sourcepub fn invalidate(&self, fingerprint: &QueryFingerprint)
pub fn invalidate(&self, fingerprint: &QueryFingerprint)
Invalidate a specific entry
Sourcepub fn iter(&self) -> impl Iterator<Item = RefMulti<'_, u64, CacheEntry>>
pub fn iter(&self) -> impl Iterator<Item = RefMulti<'_, u64, CacheEntry>>
Iterate over all entries (for L3 invalidation broadcast)
Sourcepub fn contains(&self, fingerprint: &QueryFingerprint) -> bool
pub fn contains(&self, fingerprint: &QueryFingerprint) -> bool
Check if cache contains a fingerprint
Auto Trait Implementations§
impl !Freeze for HotCache
impl !RefUnwindSafe for HotCache
impl Send for HotCache
impl Sync for HotCache
impl Unpin for HotCache
impl UnsafeUnpin for HotCache
impl !UnwindSafe for HotCache
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more