aboutsummaryrefslogtreecommitdiffstats
path: root/log_db/benches
diff options
context:
space:
mode:
Diffstat (limited to 'log_db/benches')
-rw-r--r--log_db/benches/benchmark.rs41
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,