2024-01-16 16:30:01 +08:00
|
|
|
use crate::lsm_storage::LsmStorageInner;
|
|
|
|
|
|
|
|
|
|
pub struct LeveledCompactionTask {
|
2024-01-17 15:42:33 +08:00
|
|
|
// if upper_level is `None`, then it is L0 compaction
|
|
|
|
|
upper_level: Option<usize>,
|
2024-01-16 16:30:01 +08:00
|
|
|
upper_level_sst_ids: Vec<usize>,
|
|
|
|
|
lower_level: usize,
|
|
|
|
|
lower_level_sst_ids: Vec<usize>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct LeveledCompactionController {}
|
|
|
|
|
|
|
|
|
|
impl LeveledCompactionController {
|
|
|
|
|
pub fn generate_compaction_task(&self, snapshot: &LsmStorageInner) -> LeveledCompactionTask {
|
|
|
|
|
unimplemented!()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn apply_compaction_result(
|
|
|
|
|
&self,
|
|
|
|
|
snapshot: &LsmStorageInner,
|
|
|
|
|
task: &LeveledCompactionTask,
|
|
|
|
|
output: &[usize],
|
|
|
|
|
) -> (LsmStorageInner, Vec<usize>) {
|
|
|
|
|
unimplemented!()
|
|
|
|
|
}
|
|
|
|
|
}
|