@@ -70,6 +70,12 @@ pub struct MockStorage {
|
||||
total_writes: usize,
|
||||
}
|
||||
|
||||
impl Default for MockStorage {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
impl MockStorage {
|
||||
pub fn new() -> Self {
|
||||
let snapshot = LsmStorageState {
|
||||
@@ -206,8 +212,8 @@ fn generate_random_split(
|
||||
let ne = begin + len * (i + 1) / split - 1;
|
||||
let mut begin_bytes = BytesMut::new();
|
||||
let mut end_bytes = BytesMut::new();
|
||||
begin_bytes.put_u64(nb as u64);
|
||||
end_bytes.put_u64(ne as u64);
|
||||
begin_bytes.put_u64(nb);
|
||||
end_bytes.put_u64(ne);
|
||||
result.push((begin_bytes.into(), end_bytes.into()));
|
||||
}
|
||||
result
|
||||
|
||||
@@ -51,13 +51,13 @@ impl CompactionController {
|
||||
pub fn generate_compaction_task(&self, snapshot: &LsmStorageState) -> Option<CompactionTask> {
|
||||
match self {
|
||||
CompactionController::Leveled(ctrl) => ctrl
|
||||
.generate_compaction_task(&snapshot)
|
||||
.generate_compaction_task(snapshot)
|
||||
.map(CompactionTask::Leveled),
|
||||
CompactionController::Simple(ctrl) => ctrl
|
||||
.generate_compaction_task(&snapshot)
|
||||
.generate_compaction_task(snapshot)
|
||||
.map(CompactionTask::Simple),
|
||||
CompactionController::Tiered(ctrl) => ctrl
|
||||
.generate_compaction_task(&snapshot)
|
||||
.generate_compaction_task(snapshot)
|
||||
.map(CompactionTask::Tiered),
|
||||
CompactionController::NoCompaction => unreachable!(),
|
||||
}
|
||||
@@ -71,13 +71,13 @@ impl CompactionController {
|
||||
) -> (LsmStorageState, Vec<usize>) {
|
||||
match (self, task) {
|
||||
(CompactionController::Leveled(ctrl), CompactionTask::Leveled(task)) => {
|
||||
ctrl.apply_compaction_result(&snapshot, task, output)
|
||||
ctrl.apply_compaction_result(snapshot, task, output)
|
||||
}
|
||||
(CompactionController::Simple(ctrl), CompactionTask::Simple(task)) => {
|
||||
ctrl.apply_compaction_result(&snapshot, task, output)
|
||||
ctrl.apply_compaction_result(snapshot, task, output)
|
||||
}
|
||||
(CompactionController::Tiered(ctrl), CompactionTask::Tiered(task)) => {
|
||||
ctrl.apply_compaction_result(&snapshot, task, output)
|
||||
ctrl.apply_compaction_result(snapshot, task, output)
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
@@ -86,11 +86,10 @@ impl CompactionController {
|
||||
|
||||
impl CompactionController {
|
||||
pub fn flush_to_l0(&self) -> bool {
|
||||
if let Self::Leveled(_) | Self::Simple(_) | Self::NoCompaction = self {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
matches!(
|
||||
self,
|
||||
Self::Leveled(_) | Self::Simple(_) | Self::NoCompaction
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,6 +163,6 @@ impl LsmStorageInner {
|
||||
}
|
||||
}
|
||||
});
|
||||
return Ok(Some(handle));
|
||||
Ok(Some(handle))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user