Expand description
Storage engine for FeatherDB
This crate provides the low-level storage components:
- Page management and file I/O
- B-tree data structure
- Buffer pool with pluggable eviction policies (Clock, LRU-2, LIRS)
- Write-ahead logging (WAL)
- Crash recovery
- Adaptive page compression (LZ4/ZSTD)
Re-exports§
pub use compression::create_compressor;pub use compression::CompressedPageHeader;pub use compression::CompressionStats;pub use compression::CompressionStatsSnapshot;pub use compression::CompressionType;pub use compression::Compressor;pub use compression::PageCompressor;
Modules§
- compression
- Adaptive Page Compression for FeatherDB
Structs§
- BTree
- B-tree key-value store
- Buffer
Pool - The buffer pool - caches pages in memory
- Buffer
Pool Stats - Statistics for the buffer pool
- Buffer
Pool Stats Snapshot - Immutable snapshot of buffer pool statistics
- Clock
Eviction - Clock eviction policy (second-chance algorithm)
- File
Manager - Manages file I/O for the database
- Free
List - Bitmap-based free page tracking
- Lirs
Eviction - LIRS (Low Inter-reference Recency Set) eviction policy
- Lru2
Eviction - LRU-2 eviction policy
- Page
- A database page (4KB by default)
- Page
Guard - RAII guard for reading a page
- Recovery
Stats - Statistics returned from crash recovery
- Slot
Entry - Slot array entry - points to a cell in the page
- Storage
Engine - The storage engine, managing all disk I/O and page caching
- Storage
Quota - Storage quota information
- Wal
- Write-Ahead Log manager with group commit support
- WalRecord
- A WAL record
- WalStats
- Statistics for WAL operations
- WalStats
Snapshot - Immutable snapshot of WAL statistics
Enums§
- Eviction
Policy Type - Buffer pool eviction policy type
- Page
Type - Page type discriminator
- WalRecord
Type - WAL record types
Traits§
- Eviction
Policy - Eviction policy trait
- Eviction
Policy Factory - Extension trait for creating eviction policies