use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct ReadCacheOptions {
pub capacity_bytes: usize,
pub page_bytes: usize,
pub max_in_flight: usize,
pub read_ahead_pages: usize,
pub max_prefetch_in_flight: usize,
}
impl Default for ReadCacheOptions {
fn default() -> Self {
Self {
capacity_bytes: 128 * 1024 * 1024,
page_bytes: 256 * 1024,
max_in_flight: 16,
read_ahead_pages: 4,
max_prefetch_in_flight: 2,
}
}
}
#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReadCacheStats {
pub cached_bytes: usize,
pub hits: u64,
pub misses: u64,
pub coalesced: u64,
pub physical_reads: u64,
pub physical_bytes: u64,
}