Skip to main content

velesdb_core/cache/
mod.rs

1//! Caching layer for `VelesDB` (SOTA 2026).
2//!
3//! Based on arXiv:2310.11703v2 recommendations:
4//! - LRU cache for metadata-only collections
5//! - Bloom filter for existence checks
6//! - Cache statistics and monitoring
7//!
8//! # Thread-Safety & Lock Ordering
9//!
10//! All structures are thread-safe via `parking_lot::RwLock`.
11//!
12//! **Lock Hierarchy (acquire in this order to prevent deadlocks):**
13//! 1. `BloomFilter.bits` (`RwLock`)
14//! 2. `BloomFilter.count` (`RwLock`)
15//! 3. `LruCache.inner` (`RwLock`)
16
17mod bloom;
18#[cfg(test)]
19mod bloom_tests;
20mod lockfree;
21#[cfg(test)]
22mod lockfree_tests;
23mod lru;
24#[cfg(feature = "persistence")]
25pub mod plan_cache;
26#[cfg(all(test, feature = "persistence"))]
27mod plan_cache_tests;
28
29pub use bloom::BloomFilter;
30pub use lockfree::{LockFreeCacheStats, LockFreeLruCache};
31pub use lru::{CacheStats, LruCache};
32#[cfg(feature = "persistence")]
33pub use plan_cache::{CompiledPlan, CompiledPlanCache, PlanCacheMetrics, PlanKey};
34
35#[cfg(test)]
36mod deadlock_tests;
37#[cfg(test)]
38mod lru_optimization_tests;
39#[cfg(test)]
40mod performance_tests;
41#[cfg(test)]
42mod tests;