aboutsummaryrefslogtreecommitdiffstats
path: root/log_db/benches
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-02-05 17:50:02 +0200
committerJan Tuomi <jan@jantuomi.fi>2025-02-09 23:52:26 +0200
commitd422ffe3d48d2061b4d3ddeb0c08796e4d71a5fa (patch)
tree0b6820b060bf0cbeb2686a53a23c9ebee5654334 /log_db/benches
parentd4c953dc4bbd190dae4b5be69941f5c42c59af34 (diff)
Remove Recordable trait, implement Python bindings, fixes
Diffstat (limited to 'log_db/benches')
-rw-r--r--log_db/benches/benchmark.rs53
-rw-r--r--log_db/benches/utils.rs16
2 files changed, 47 insertions, 22 deletions
diff --git a/log_db/benches/benchmark.rs b/log_db/benches/benchmark.rs
index 148c0b4..4c9ad47 100644
--- a/log_db/benches/benchmark.rs
+++ b/log_db/benches/benchmark.rs
@@ -10,12 +10,17 @@ use utils::*;
pub fn upsert_compacted(c: &mut Criterion) {
let mut group = c.benchmark_group("upsert_compacted");
let data_dir_obj = tempfile::tempdir().expect("Failed to get tmpdir");
- let data_dir = &data_dir_obj
+ let data_dir = data_dir_obj
.path()
.to_str()
.expect("Failed to convert tmpdir path to str");
- let mut db = DB::<Inst>::configure()
- .data_dir(&data_dir)
+ let mut db = DB::configure()
+ .schema(Inst::schema())
+ .primary_key(Inst::primary_key())
+ .secondary_keys(Inst::secondary_keys())
+ .from_record(Inst::from_record)
+ .into_record(Inst::into_record)
+ .data_dir(data_dir)
.initialize()
.expect("Failed to initialize DB");
@@ -37,12 +42,17 @@ pub fn upsert_compacted(c: &mut Criterion) {
pub fn delete_existing_compacted(c: &mut Criterion) {
let mut group = c.benchmark_group("delete_existing_compacted");
let data_dir_obj = tempfile::tempdir().expect("Failed to get tmpdir");
- let data_dir = &data_dir_obj
+ let data_dir = data_dir_obj
.path()
.to_str()
.expect("Failed to convert tmpdir path to str");
- let mut db = DB::<Inst>::configure()
- .data_dir(&data_dir)
+ let mut db = DB::configure()
+ .schema(Inst::schema())
+ .primary_key(Inst::primary_key())
+ .secondary_keys(Inst::secondary_keys())
+ .from_record(Inst::from_record)
+ .into_record(Inst::into_record)
+ .data_dir(data_dir)
.initialize()
.expect("Failed to initialize DB");
@@ -71,12 +81,17 @@ pub fn upsert_write_durability(c: &mut Criterion) {
for mode in [WriteDurability::Flush, WriteDurability::FlushSync] {
group.bench_with_input(BenchmarkId::from_parameter(&mode), &mode, |b, _mode| {
let data_dir_obj = tempfile::tempdir().expect("Failed to get tmpdir");
- let data_dir = &data_dir_obj
+ let data_dir = data_dir_obj
.path()
.to_str()
.expect("Failed to convert tmpdir path to str");
- let mut db = DB::<Inst>::configure()
- .data_dir(&data_dir)
+ let mut db = DB::configure()
+ .schema(Inst::schema())
+ .primary_key(Inst::primary_key())
+ .secondary_keys(Inst::secondary_keys())
+ .from_record(Inst::from_record)
+ .into_record(Inst::into_record)
+ .data_dir(data_dir)
.write_durability(mode.clone())
.initialize()
.expect("Failed to initialize DB");
@@ -94,12 +109,17 @@ pub fn get_existing_compacted(c: &mut Criterion) {
let mut group = c.benchmark_group("get_existing_compacted");
let data_dir_obj = tempfile::tempdir().expect("Failed to get tmpdir");
- let data_dir = &data_dir_obj
+ let data_dir = data_dir_obj
.path()
.to_str()
.expect("Failed to convert tmpdir path to str");
- let mut db = DB::<Inst>::configure()
- .data_dir(&data_dir)
+ let mut db = DB::configure()
+ .schema(Inst::schema())
+ .primary_key(Inst::primary_key())
+ .secondary_keys(Inst::secondary_keys())
+ .from_record(Inst::from_record)
+ .into_record(Inst::into_record)
+ .data_dir(data_dir)
.initialize()
.expect("Failed to initialize DB");
@@ -129,8 +149,13 @@ pub fn find_by_existing_compacted(c: &mut Criterion) {
let data_dir = data_dir_path
.to_str()
.expect("Failed to convert tmpdir path to str");
- let mut db = DB::<Inst>::configure()
- .data_dir(&data_dir)
+ let mut db = DB::configure()
+ .schema(Inst::schema())
+ .primary_key(Inst::primary_key())
+ .secondary_keys(Inst::secondary_keys())
+ .from_record(Inst::from_record)
+ .into_record(Inst::into_record)
+ .data_dir(data_dir)
.initialize()
.expect("Failed to initialize DB");
diff --git a/log_db/benches/utils.rs b/log_db/benches/utils.rs
index ed114ea..9f29cc6 100644
--- a/log_db/benches/utils.rs
+++ b/log_db/benches/utils.rs
@@ -16,30 +16,30 @@ pub struct Inst {
pub name: String,
pub data: Vec<u8>,
}
-impl Recordable for Inst {
- type Field = Field;
- fn schema() -> Vec<(Field, Type)> {
+
+impl Inst {
+ pub fn schema() -> Vec<(Field, Type)> {
vec![
(Field::Id, Type::int()),
(Field::Name, Type::string()),
(Field::Data, Type::bytes()),
]
}
- fn primary_key() -> Self::Field {
+ pub fn primary_key() -> Field {
Field::Id
}
- fn secondary_keys() -> Vec<Self::Field> {
+ pub fn secondary_keys() -> Vec<Field> {
vec![Field::Name]
}
- fn into_record(self) -> Vec<Value> {
+ pub fn into_record(self) -> Vec<Value> {
vec![
Value::Int(self.id),
Value::String(self.name),
Value::Bytes(self.data),
]
}
- fn from_record(record: Vec<Value>) -> Self {
+ pub fn from_record(record: Vec<Value>) -> Self {
let mut it = record.into_iter();
Inst {
id: match it.next().unwrap() {
@@ -86,7 +86,7 @@ pub fn random_inst(from_id: i64, to_id: i64) -> Inst {
}
pub fn prefill_db(
- db: &mut DB<Inst>,
+ db: &mut DB<Inst, Field>,
insts: &mut Vec<Inst>,
n_records: usize,
compact: bool,