From 1c3e5f3c1735545e5d7fe45c1fce36874ecc7949 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 21 Nov 2024 15:40:45 +0200 Subject: Remove memtable_capacity --- log_db/benches/benchmark.rs | 52 --------------------------------------------- log_db/src/lib.rs | 12 ----------- log_db/tests/integration.rs | 2 -- 3 files changed, 66 deletions(-) (limited to 'log_db') diff --git a/log_db/benches/benchmark.rs b/log_db/benches/benchmark.rs index 12fda92..ee3f81b 100644 --- a/log_db/benches/benchmark.rs +++ b/log_db/benches/benchmark.rs @@ -128,7 +128,6 @@ pub fn get_from_disk_various_initial_sizes(c: &mut Criterion) { .expect("Failed to convert tmpdir path to str"); let mut db = DB::configure() .data_dir(&data_dir) - .memtable_capacity(0) .fields(vec![ (Field::Id, RecordField::int()), (Field::Name, RecordField::string()), @@ -159,7 +158,6 @@ pub fn get_from_disk_various_initial_sizes_compacted(c: &mut Criterion) { .expect("Failed to convert tmpdir path to str"); let mut db = DB::configure() .data_dir(&data_dir) - .memtable_capacity(0) .fields(vec![ (Field::Id, RecordField::int()), (Field::Name, RecordField::string()), @@ -180,55 +178,6 @@ pub fn get_from_disk_various_initial_sizes_compacted(c: &mut Criterion) { } } -pub fn get_various_memtable_capacities(c: &mut Criterion) { - let mut group = c.benchmark_group("get_various_memtable_capacities"); - - const PREFILL_N: usize = 10000; - let data_dir_obj = tempfile::tempdir().expect("Failed to get tmpdir"); - let data_dir = &data_dir_obj - .path() - .to_str() - .expect("Failed to convert tmpdir path to str"); - - // Create a db instance for prefilling - let mut db = DB::configure() - .data_dir(&data_dir) - .fields(vec![ - (Field::Id, RecordField::int()), - (Field::Name, RecordField::string()), - (Field::Data, RecordField::bytes()), - ]) - .primary_key(Field::Id) - .initialize() - .expect("Failed to initialize DB"); - - prefill_db(&mut db, PREFILL_N, false).expect("Failed to prefill DB"); - drop(db); - - // prefill_db generates IDs between 0..1000, so having memtable_capacity = 1000 - // effectively indexes the whole DB - for size in (0..).map(|x| x * 100).take_while(|&x| x <= 1000) { - group.bench_with_input(BenchmarkId::from_parameter(size), &size, |b, &_size| { - let mut db = DB::configure() - .data_dir(&data_dir) - .fields(vec![ - (Field::Id, RecordField::int()), - (Field::Name, RecordField::string()), - (Field::Data, RecordField::bytes()), - ]) - .memtable_capacity(size) - .primary_key(Field::Id) - .initialize() - .expect("Failed to initialize DB"); - - b.iter(|| { - let id = random_int(0, 1000 + 1); - let _ = db.get(black_box(&Value::Int(id))); - }); - }); - } -} - // Register the benchmark group criterion_group!( benches, @@ -237,6 +186,5 @@ criterion_group!( upsert_write_durability, get_from_disk_various_initial_sizes, get_from_disk_various_initial_sizes_compacted, - get_various_memtable_capacities, ); criterion_main!(benches); diff --git a/log_db/src/lib.rs b/log_db/src/lib.rs index 68db7fd..d7b10eb 100644 --- a/log_db/src/lib.rs +++ b/log_db/src/lib.rs @@ -26,7 +26,6 @@ use uuid::Uuid; pub struct ConfigBuilder { data_dir: Option, segment_size: Option, - memtable_capacity: Option, fields: Option>, primary_key: Option, secondary_keys: Option>, @@ -38,7 +37,6 @@ impl<'a, Field: Eq + Clone + Debug> ConfigBuilder { ConfigBuilder:: { data_dir: None, segment_size: None, - memtable_capacity: None, fields: None, primary_key: None, secondary_keys: None, @@ -61,13 +59,6 @@ impl<'a, Field: Eq + Clone + Debug> ConfigBuilder { self } - /// The maximum size of a single memtable in terms of records. - /// Note that each secondary index will have its own memtable. - pub fn memtable_capacity(&mut self, memtable_capacity: usize) -> &mut Self { - self.memtable_capacity = Some(memtable_capacity); - self - } - /// The field schema of the database. pub fn fields(&mut self, fields: &[(Field, RecordField)]) -> &mut Self { self.fields = Some(fields.to_vec()); @@ -101,7 +92,6 @@ impl<'a, Field: Eq + Clone + Debug> ConfigBuilder { let config = Config:: { data_dir: self.data_dir.clone().unwrap_or("db_data".to_string()), segment_size: self.segment_size.unwrap_or(4 * 1024 * 1024), // 4MB - memtable_capacity: self.memtable_capacity.unwrap_or(1_000_000), fields: self .fields .as_ref() @@ -129,7 +119,6 @@ impl<'a, Field: Eq + Clone + Debug> ConfigBuilder { struct Config { pub data_dir: String, pub segment_size: usize, - pub memtable_capacity: usize, pub fields: Vec<(Field, RecordField)>, pub primary_key: Field, pub secondary_keys: Vec, @@ -815,7 +804,6 @@ mod tests { let mut db = DB::configure() .data_dir(data_dir.to_str().unwrap()) - .memtable_capacity(0) .fields(&[(Field::Id, RecordField::int())]) .primary_key(Field::Id) .initialize() diff --git a/log_db/tests/integration.rs b/log_db/tests/integration.rs index fa81542..e5befa7 100644 --- a/log_db/tests/integration.rs +++ b/log_db/tests/integration.rs @@ -85,7 +85,6 @@ fn test_upsert_and_get_without_memtable() { let data_dir = tmp_dir(); let mut db = DB::configure() .data_dir(&data_dir) - .memtable_capacity(0) .fields(&[ (Field::Id, RecordField::int()), (Field::Name, RecordField::string().nullable()), @@ -371,7 +370,6 @@ fn test_log_is_rotated_when_capacity_reached() { let mut db = DB::configure() .data_dir(&data_dir) - .memtable_capacity(0) // disable memtables .segment_size(10 * record_len) // small log segment size .fields(&[ (Field::Id, RecordField::int()), -- cgit v1.3