@@ -37,7 +37,9 @@ impl LsmStorage {
|
||||
let mut iters = Vec::new();
|
||||
iters.reserve(tables.len());
|
||||
for table in tables.iter() {
|
||||
iters.push(Box::new(SsTableIterator::create_and_seek_to_first(table.clone())?));
|
||||
iters.push(Box::new(SsTableIterator::create_and_seek_to_first(
|
||||
table.clone(),
|
||||
)?));
|
||||
}
|
||||
let mut iter = MergeIterator::create(iters);
|
||||
|
||||
|
||||
@@ -166,17 +166,16 @@ impl LeveledCompactionController {
|
||||
.copied()
|
||||
.collect::<HashSet<_>>();
|
||||
if let Some(upper_level) = task.upper_level {
|
||||
let new_upper_level_ssts =
|
||||
snapshot.levels[upper_level - 1]
|
||||
.1
|
||||
.iter()
|
||||
.filter_map(|x| {
|
||||
if upper_level_sst_ids_set.remove(x) {
|
||||
return None;
|
||||
}
|
||||
Some(*x)
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let new_upper_level_ssts = snapshot.levels[upper_level - 1]
|
||||
.1
|
||||
.iter()
|
||||
.filter_map(|x| {
|
||||
if upper_level_sst_ids_set.remove(x) {
|
||||
return None;
|
||||
}
|
||||
Some(*x)
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
assert!(upper_level_sst_ids_set.is_empty());
|
||||
snapshot.levels[upper_level - 1].1 = new_upper_level_ssts;
|
||||
} else {
|
||||
|
||||
@@ -223,6 +223,9 @@ impl LsmStorage {
|
||||
|
||||
let iter = TwoMergeIterator::create(memtable_iter, table_iter)?;
|
||||
|
||||
Ok(FusedIterator::new(LsmIterator::new(iter, map_bound(upper))?))
|
||||
Ok(FusedIterator::new(LsmIterator::new(
|
||||
iter,
|
||||
map_bound(upper),
|
||||
)?))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user