pub struct CteCacheManager { /* private fields */ }Expand description
CTE Cache Manager
Managing caching of CTE (Common Table Expression) query results and ensuring thread-safe access.
Implementations§
Source§impl CteCacheManager
impl CteCacheManager
Sourcepub fn with_config(config: CteCacheConfig) -> Self
pub fn with_config(config: CteCacheConfig) -> Self
Create using the configuration.
pub fn with_stats_manager(self, stats_manager: Arc<StatsManager>) -> Self
Sourcepub fn set_stats_manager(&self, stats_manager: Arc<StatsManager>)
pub fn set_stats_manager(&self, stats_manager: Arc<StatsManager>)
Set the stats manager after creation
Sourcepub fn config(&self) -> CteCacheConfig
pub fn config(&self) -> CteCacheConfig
Obtain the configuration.
Sourcepub fn set_config(&self, config: CteCacheConfig)
pub fn set_config(&self, config: CteCacheConfig)
Update the configuration.
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
Determine whether to enable caching.
Sourcepub fn should_cache(
&self,
cte_definition: &str,
estimated_rows: u64,
is_deterministic: bool,
) -> bool
pub fn should_cache( &self, cte_definition: &str, estimated_rows: u64, is_deterministic: bool, ) -> bool
Determine whether the results of the CTE (Common Table Expression) are cached.
§Parameters
cte_definition: Text defining the Common Table Expression (CTE).
estimated_rows: The estimated number of rows
is_deterministic: Whether the CTE (Common Table Expression) is deterministic.
Sourcepub fn put(
&self,
cte_definition: &str,
data: Vec<u8>,
row_count: u64,
) -> Option<String>
pub fn put( &self, cte_definition: &str, data: Vec<u8>, row_count: u64, ) -> Option<String>
Store the data in the cache.
Sourcepub fn put_with_cost(
&self,
cte_definition: &str,
data: Vec<u8>,
row_count: u64,
compute_cost_ms: u64,
) -> Option<String>
pub fn put_with_cost( &self, cte_definition: &str, data: Vec<u8>, row_count: u64, compute_cost_ms: u64, ) -> Option<String>
Store the data in the cache with compute cost.
Sourcepub fn put_with_tables(
&self,
cte_definition: &str,
data: Vec<u8>,
row_count: u64,
compute_cost_ms: u64,
dependent_tables: Vec<String>,
) -> Option<String>
pub fn put_with_tables( &self, cte_definition: &str, data: Vec<u8>, row_count: u64, compute_cost_ms: u64, dependent_tables: Vec<String>, ) -> Option<String>
Store the data in the cache with dependent tables.
Sourcepub fn evict_low_priority(&self, target_bytes: usize) -> usize
pub fn evict_low_priority(&self, target_bytes: usize) -> usize
Evict low priority entries
Sourcepub fn invalidate(&self, cte_definition: &str) -> bool
pub fn invalidate(&self, cte_definition: &str) -> bool
Invalidate the cache entry
Sourcepub fn invalidate_by_hash(&self, cte_hash: &str) -> bool
pub fn invalidate_by_hash(&self, cte_hash: &str) -> bool
Invalidate cache entry by hash
Sourcepub fn invalidate_by_table(&self, table_name: &str) -> usize
pub fn invalidate_by_table(&self, table_name: &str) -> usize
Invalidate cache entries by table name
Sourcepub fn get_cache_entries(&self) -> Vec<(String, f64, usize)>
pub fn get_cache_entries(&self) -> Vec<(String, f64, usize)>
Get cache entries for eviction (internal use)
Sourcepub fn increment_evicted_count(&self, count: u64)
pub fn increment_evicted_count(&self, count: u64)
Increment eviction count (internal use)
Sourcepub fn get_stats(&self) -> CteCacheStatsSnapshot
pub fn get_stats(&self) -> CteCacheStatsSnapshot
Obtain statistical information
Sourcepub fn reset_stats(&self)
pub fn reset_stats(&self)
Reset statistics
Sourcepub fn current_memory(&self) -> usize
pub fn current_memory(&self) -> usize
Get the current memory usage
Sourcepub fn entry_count(&self) -> usize
pub fn entry_count(&self) -> usize
Obtain the number of cached entries
Sourcepub fn cleanup_expired(&self) -> usize
pub fn cleanup_expired(&self) -> usize
Clearance of obsolete entries Note: moka handles TTL automatically, so this is a no-op
Sourcepub fn stats(&self) -> Arc<CteCacheStats> ⓘ
pub fn stats(&self) -> Arc<CteCacheStats> ⓘ
Get the statistics object
Trait Implementations§
Source§impl Debug for CteCacheManager
impl Debug for CteCacheManager
Auto Trait Implementations§
impl !Freeze for CteCacheManager
impl !RefUnwindSafe for CteCacheManager
impl !UnwindSafe for CteCacheManager
impl Send for CteCacheManager
impl Sync for CteCacheManager
impl Unpin for CteCacheManager
impl UnsafeUnpin for CteCacheManager
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.