compute read amp for tiered compaction
Signed-off-by: Alex Chi Z <iskyzh@gmail.com>
This commit is contained in:
@@ -138,7 +138,7 @@ fn main() {
|
|||||||
level0_file_num_compaction_trigger,
|
level0_file_num_compaction_trigger,
|
||||||
max_levels,
|
max_levels,
|
||||||
} => {
|
} => {
|
||||||
let mut controller =
|
let controller =
|
||||||
SimpleLeveledCompactionController::new(SimpleLeveledCompactionOptions {
|
SimpleLeveledCompactionController::new(SimpleLeveledCompactionOptions {
|
||||||
size_ratio_percent,
|
size_ratio_percent,
|
||||||
level0_file_num_compaction_trigger,
|
level0_file_num_compaction_trigger,
|
||||||
@@ -294,6 +294,16 @@ fn main() {
|
|||||||
storage.total_flushes,
|
storage.total_flushes,
|
||||||
max_space as f64 / storage.total_flushes as f64
|
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!();
|
println!();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ impl SimpleLeveledCompactionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn generate_compaction_task(
|
pub fn generate_compaction_task(
|
||||||
&mut self,
|
&self,
|
||||||
snapshot: &LsmStorageInner,
|
snapshot: &LsmStorageInner,
|
||||||
) -> Option<SimpleLeveledCompactionTask> {
|
) -> Option<SimpleLeveledCompactionTask> {
|
||||||
let mut level_sizes = Vec::new();
|
let mut level_sizes = Vec::new();
|
||||||
|
|||||||
@@ -119,6 +119,9 @@ impl TieredCompactionController {
|
|||||||
levels.push((output[0], output.to_vec()));
|
levels.push((output[0], output.to_vec()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !tier_to_remove.is_empty() {
|
||||||
|
unreachable!("some tiers not found??");
|
||||||
|
}
|
||||||
snapshot.levels = levels;
|
snapshot.levels = levels;
|
||||||
(snapshot, files_to_remove)
|
(snapshot, files_to_remove)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user