pub struct ChunkCache { /* private fields */ }Expand description
A configurable cache that operates at the “chunk” level.
While writing databases, individual portions of data are often written as a single chunk. These chunks may be stored encrypted on-disk, but the in-memory cache will be after decryption.
To keep memory usage low, the maximum size for a cached value can be set. It is important that this value be large enough to fit most B-Tree nodes, and that size will depend on how big the tree grows.
Implementations§
Source§impl ChunkCache
impl ChunkCache
Sourcepub fn new(capacity: usize, max_chunk_length: usize) -> Self
pub fn new(capacity: usize, max_chunk_length: usize) -> Self
Create a new cache with a maximum number of entries (capacity) and
max_chunk_length. Any chunks longer than max_chunk_length will not
be cached. The maximum memory usage of this cache can be calculated as
capacity * max_chunk_length, although the actual memory usage will
likely be much smaller as many chunks are small.
Sourcepub fn insert(&self, file_id: u64, position: u64, buffer: ArcBytes<'static>)
pub fn insert(&self, file_id: u64, position: u64, buffer: ArcBytes<'static>)
Adds a new cached chunk for file_path at position.
Sourcepub fn replace_with_decoded<T: AnySendSync + 'static>(
&self,
file_id: u64,
position: u64,
value: T,
)
pub fn replace_with_decoded<T: AnySendSync + 'static>( &self, file_id: u64, position: u64, value: T, )
Adds a new cached chunk for file_path at position.
Trait Implementations§
Source§impl Clone for ChunkCache
impl Clone for ChunkCache
Source§fn clone(&self) -> ChunkCache
fn clone(&self) -> ChunkCache
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more