diff --git a/README.md b/README.md index f747eca..9d9b998 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,11 @@ Build a simple key-value storage engine in a week! The tutorial is available at [https://skyzh.github.io/mini-lsm](https://skyzh.github.io/mini-lsm). You can use the provided starter code to kick off your project, and follow the tutorial to implement the LSM tree. -Join the mini-lsm community: [![Join skyzh's Discord Server](https://dcbadge.vercel.app/api/server/ZgXzxpua3H)](https://skyzh.dev/join/discord) +## Community + +You may join skyzh's Discord server and study with the mini-lsm community. + +[![Join skyzh's Discord Server](https://dcbadge.vercel.app/api/server/ZgXzxpua3H)](https://skyzh.dev/join/discord) ## Development diff --git a/mini-lsm-week-1/src/lsm_storage.rs b/mini-lsm-week-1/src/lsm_storage.rs index a55bba0..f57e189 100644 --- a/mini-lsm-week-1/src/lsm_storage.rs +++ b/mini-lsm-week-1/src/lsm_storage.rs @@ -218,6 +218,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), + )?)) } } diff --git a/mini-lsm/src/compact.rs b/mini-lsm/src/compact.rs index 22e9573..1ac9487 100644 --- a/mini-lsm/src/compact.rs +++ b/mini-lsm/src/compact.rs @@ -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); diff --git a/mini-lsm/src/compact/leveled.rs b/mini-lsm/src/compact/leveled.rs index ab64678..ad854c7 100644 --- a/mini-lsm/src/compact/leveled.rs +++ b/mini-lsm/src/compact/leveled.rs @@ -166,17 +166,16 @@ impl LeveledCompactionController { .copied() .collect::>(); 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::>(); + 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::>(); assert!(upper_level_sst_ids_set.is_empty()); snapshot.levels[upper_level - 1].1 = new_upper_level_ssts; } else { diff --git a/mini-lsm/src/lsm_storage.rs b/mini-lsm/src/lsm_storage.rs index 2bcf69c..a6e8595 100644 --- a/mini-lsm/src/lsm_storage.rs +++ b/mini-lsm/src/lsm_storage.rs @@ -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), + )?)) } }