add compaction tests and fix bugs in compaction

Signed-off-by: Alex Chi <iskyzh@gmail.com>
This commit is contained in:
Alex Chi
2024-01-25 15:25:23 +08:00
parent 971d0b1c81
commit 8dbaf54e38
23 changed files with 379 additions and 42 deletions

View File

@@ -0,0 +1,28 @@
use tempfile::tempdir;
use crate::{
compact::{CompactionOptions, LeveledCompactionOptions},
lsm_storage::{LsmStorageOptions, MiniLsm},
};
use super::harness::{check_compaction_ratio, compaction_bench};
#[test]
fn test_integration() {
let dir = tempdir().unwrap();
let storage = MiniLsm::open(
&dir,
LsmStorageOptions::default_for_week2_test(CompactionOptions::Leveled(
LeveledCompactionOptions {
level0_file_num_compaction_trigger: 2,
level_size_multiplier: 2,
base_level_size_mb: 1,
max_levels: 4,
},
)),
)
.unwrap();
compaction_bench(storage.clone());
check_compaction_ratio(storage.clone());
}