1use std::time::{Duration, SystemTime};
5
6#[derive(Debug, Clone, Copy)]
7pub enum CompactionTask {
8 ByRunCount,
9 BySize,
10 ByAge,
11}
12
13#[derive(Debug, Clone, Default)]
14pub struct CompactionStats {
15 pub files_compacted: usize,
16 pub bytes_before: u64,
17 pub bytes_after: u64,
18 pub duration: Duration,
19 pub crdt_merges: usize,
20}
21
22#[derive(Debug, Clone)]
23pub struct CompactionStatus {
24 pub l1_runs: usize,
25 pub l1_size_bytes: u64,
26 pub oldest_l1_age: Duration,
27 pub compaction_in_progress: bool,
28 pub compaction_pending: usize,
29 pub last_compaction: Option<SystemTime>,
30 pub total_compactions: u64,
31 pub total_bytes_compacted: u64,
32}
33
34impl Default for CompactionStatus {
35 fn default() -> Self {
36 Self {
37 l1_runs: 0,
38 l1_size_bytes: 0,
39 oldest_l1_age: Duration::from_secs(0),
40 compaction_in_progress: false,
41 compaction_pending: 0,
42 last_compaction: None,
43 total_compactions: 0,
44 total_bytes_compacted: 0,
45 }
46 }
47}