akv/persistence/
config.rs

1use std::time::Duration;
2
3#[derive(Debug, Clone)]
4pub struct PersistenceConfig {
5    pub wal_max_size: usize,
6    pub wal_rotation_count: usize,
7    pub buffer_max_size: usize,
8    pub buffer_max_entries: usize,
9    pub flush_interval: Duration,
10    pub sync_interval: Duration,
11    pub snapshot_interval: Duration,
12    pub snapshot_wal_threshold: usize,
13    pub enable_compression: bool,
14    pub compression_level: u32,
15}
16
17impl Default for PersistenceConfig {
18    fn default() -> Self {
19        Self {
20            wal_max_size: 100 * 1024 * 1024,
21            wal_rotation_count: 10,
22            buffer_max_size: 1024 * 1024,
23            buffer_max_entries: 1000,
24            flush_interval: Duration::from_millis(100),
25            sync_interval: Duration::from_secs(1),
26            snapshot_interval: Duration::from_secs(300),
27            snapshot_wal_threshold: 10000,
28            enable_compression: true,
29            compression_level: 3,
30        }
31    }
32}