compute read amp for tiered compaction

Signed-off-by: Alex Chi Z <iskyzh@gmail.com>
This commit is contained in:
Alex Chi Z
2024-01-17 15:49:43 +08:00
parent 70b1da4553
commit 11ff04227f
3 changed files with 15 additions and 2 deletions

View File

@@ -138,7 +138,7 @@ fn main() {
level0_file_num_compaction_trigger,
max_levels,
} => {
let mut controller =
let controller =
SimpleLeveledCompactionController::new(SimpleLeveledCompactionOptions {
size_ratio_percent,
level0_file_num_compaction_trigger,
@@ -294,6 +294,16 @@ fn main() {
storage.total_flushes,
max_space as f64 / storage.total_flushes as f64
);
println!(
"Read Amplification: {}x",
storage.snapshot.l0_sstables.len()
+ storage
.snapshot
.levels
.iter()
.filter(|(_, f)| !f.is_empty())
.count()
);
println!();
}
}

View File

@@ -26,7 +26,7 @@ impl SimpleLeveledCompactionController {
}
pub fn generate_compaction_task(
&mut self,
&self,
snapshot: &LsmStorageInner,
) -> Option<SimpleLeveledCompactionTask> {
let mut level_sizes = Vec::new();

View File

@@ -119,6 +119,9 @@ impl TieredCompactionController {
levels.push((output[0], output.to_vec()));
}
}
if !tier_to_remove.is_empty() {
unreachable!("some tiers not found??");
}
snapshot.levels = levels;
(snapshot, files_to_remove)
}