diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2024-10-08 23:50:35 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2024-10-08 23:50:35 +0300 |
| commit | 13577d9ac7cd80fab5a1cf86254c5f407f75978d (patch) | |
| tree | c3b1d7ccdbbe71c973aec45d9227bb6b43583bf9 /log_db/benches/benchmark.rs | |
| parent | 771237f961f5148060c1d0606e4671552954176e (diff) | |
Add compaction
Diffstat (limited to 'log_db/benches/benchmark.rs')
| -rw-r--r-- | log_db/benches/benchmark.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/log_db/benches/benchmark.rs b/log_db/benches/benchmark.rs index 5174bdb..8f5b56e 100644 --- a/log_db/benches/benchmark.rs +++ b/log_db/benches/benchmark.rs @@ -44,6 +44,46 @@ pub fn upsert_various_initial_sizes(c: &mut Criterion) { } } +pub fn upsert_various_initial_sizes_compacted(c: &mut Criterion) { + let mut group = c.benchmark_group("upsert_various_initial_sizes_compacted"); + + for size in [100, 1000, 10000, 100_000, 1_000_000, 10_000_000] { + 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"); + + let sample_record = random_record(0, 1); + let record_length = sample_record.serialize().len() + SEQ_RECORD_SEP.len(); + + let mut db = DB::configure() + .data_dir(&data_dir) + .fields(vec![ + (Field::Id, RecordField::int()), + (Field::Name, RecordField::string()), + (Field::Data, RecordField::bytes()), + ]) + .segment_size(1000 * record_length) + .primary_key(Field::Id) + .initialize() + .expect("Failed to initialize DB"); + + prefill_db(&mut db, size).expect("Failed to prefill DB"); + db.do_maintenance_tasks() + .expect("Failed to do maintenance tasks"); + + group.bench_with_input(BenchmarkId::from_parameter(size), &size, |b, &_size| { + b.iter(|| { + let record = random_record(0, size as i64 + 1); + let _ = db.upsert(black_box(&record)); + db.do_maintenance_tasks() + .expect("Failed to do maintenance tasks"); + }); + }); + } +} + pub fn upsert_write_durability(c: &mut Criterion) { let mut group = c.benchmark_group("upsert_write_durability"); @@ -214,6 +254,7 @@ fn reverse_read_file_with_various_buffer_sizes(c: &mut Criterion) { criterion_group!( benches, upsert_various_initial_sizes, + upsert_various_initial_sizes_compacted, upsert_write_durability, get_from_disk_various_initial_sizes, get_various_memtable_capacities, |
