diff --git a/benches/common.rs b/benches/common.rs index bd4b9e81..dfa46962 100644 --- a/benches/common.rs +++ b/benches/common.rs @@ -1,5 +1,7 @@ use redb::{AccessGuard, ReadableTableMetadata, TableDefinition}; -use rocksdb::{Direction, IteratorMode, TransactionDB, TransactionOptions, WriteOptions}; +use rocksdb::{ + Direction, IteratorMode, OptimisticTransactionDB, OptimisticTransactionOptions, WriteOptions, +}; use sanakirja::btree::page_unsized; use sanakirja::{Commit, RootDb}; use std::fs; @@ -453,11 +455,11 @@ impl BenchIterator for HeedBenchIterator<'_> { } pub struct RocksdbBenchDatabase<'a> { - db: &'a TransactionDB, + db: &'a OptimisticTransactionDB, } impl<'a> RocksdbBenchDatabase<'a> { - pub fn new(db: &'a TransactionDB) -> Self { + pub fn new(db: &'a OptimisticTransactionDB) -> Self { Self { db } } } @@ -473,7 +475,7 @@ impl<'a> BenchDatabase for RocksdbBenchDatabase<'a> { fn write_transaction(&self) -> Self::W<'_> { let mut write_opt = WriteOptions::new(); write_opt.set_sync(true); - let mut txn_opt = TransactionOptions::new(); + let mut txn_opt = OptimisticTransactionOptions::new(); txn_opt.set_snapshot(true); let txn = self.db.transaction_opt(&write_opt, &txn_opt); RocksdbBenchWriteTransaction { txn } @@ -483,10 +485,15 @@ impl<'a> BenchDatabase for RocksdbBenchDatabase<'a> { let snapshot = self.db.snapshot(); RocksdbBenchReadTransaction { snapshot } } + + fn compact(&mut self) -> bool { + self.db.compact_range::<&[u8], &[u8]>(None, None); + true + } } pub struct RocksdbBenchWriteTransaction<'a> { - txn: rocksdb::Transaction<'a, TransactionDB>, + txn: rocksdb::Transaction<'a, OptimisticTransactionDB>, } impl<'a> BenchWriteTransaction for RocksdbBenchWriteTransaction<'a> { @@ -502,7 +509,7 @@ impl<'a> BenchWriteTransaction for RocksdbBenchWriteTransaction<'a> { } pub struct RocksdbBenchInserter<'a> { - txn: &'a rocksdb::Transaction<'a, TransactionDB>, + txn: &'a rocksdb::Transaction<'a, OptimisticTransactionDB>, } impl BenchInserter for RocksdbBenchInserter<'_> { @@ -516,7 +523,7 @@ impl BenchInserter for RocksdbBenchInserter<'_> { } pub struct RocksdbBenchReadTransaction<'db> { - snapshot: rocksdb::SnapshotWithThreadMode<'db, TransactionDB>, + snapshot: rocksdb::SnapshotWithThreadMode<'db, OptimisticTransactionDB>, } impl<'db> BenchReadTransaction for RocksdbBenchReadTransaction<'db> { @@ -530,7 +537,7 @@ impl<'db> BenchReadTransaction for RocksdbBenchReadTransaction<'db> { } pub struct RocksdbBenchReader<'db, 'txn> { - snapshot: &'txn rocksdb::SnapshotWithThreadMode<'db, TransactionDB>, + snapshot: &'txn rocksdb::SnapshotWithThreadMode<'db, OptimisticTransactionDB>, } impl<'db, 'txn> BenchReader for RocksdbBenchReader<'db, 'txn> { @@ -555,7 +562,7 @@ impl<'db, 'txn> BenchReader for RocksdbBenchReader<'db, 'txn> { } pub struct RocksdbBenchIterator<'a> { - iter: rocksdb::DBIteratorWithThreadMode<'a, TransactionDB>, + iter: rocksdb::DBIteratorWithThreadMode<'a, OptimisticTransactionDB>, } impl BenchIterator for RocksdbBenchIterator<'_> { diff --git a/benches/int_benchmark.rs b/benches/int_benchmark.rs index 40d55b27..46fd9404 100644 --- a/benches/int_benchmark.rs +++ b/benches/int_benchmark.rs @@ -79,7 +79,7 @@ fn main() { let rocksdb_results = { let tmpfile: TempDir = tempfile::tempdir_in(current_dir().unwrap()).unwrap(); - let db = rocksdb::TransactionDB::open_default(tmpfile.path()).unwrap(); + let db = rocksdb::OptimisticTransactionDB::open_default(tmpfile.path()).unwrap(); let table = RocksdbBenchDatabase::new(&db); benchmark(table) }; diff --git a/benches/large_values_benchmark.rs b/benches/large_values_benchmark.rs index 781af434..60b9ff98 100644 --- a/benches/large_values_benchmark.rs +++ b/benches/large_values_benchmark.rs @@ -90,7 +90,7 @@ fn main() { let rocksdb_results = { let tmpfile: TempDir = tempfile::tempdir_in(current_dir().unwrap()).unwrap(); - let db = rocksdb::TransactionDB::open_default(tmpfile.path()).unwrap(); + let db = rocksdb::OptimisticTransactionDB::open_default(tmpfile.path()).unwrap(); let table = RocksdbBenchDatabase::new(&db); benchmark(table) }; diff --git a/benches/lmdb_benchmark.rs b/benches/lmdb_benchmark.rs index b7d635e7..397bb12f 100644 --- a/benches/lmdb_benchmark.rs +++ b/benches/lmdb_benchmark.rs @@ -308,7 +308,7 @@ fn benchmark(db: T, path: &Path) -> Vec<(String, } let size = database_size(path); println!( - "{}: Final file size {}ms", + "{}: Final file size {}", T::db_type_name(), ResultType::SizeInBytes(size) ); @@ -394,7 +394,7 @@ fn main() { opts.set_block_based_table_factory(&bb); opts.create_if_missing(true); - let db = rocksdb::TransactionDB::open(&opts, &Default::default(), tmpfile.path()).unwrap(); + let db = rocksdb::OptimisticTransactionDB::open(&opts, tmpfile.path()).unwrap(); let table = RocksdbBenchDatabase::new(&db); benchmark(table, tmpfile.path()) };