diff --git a/Cargo.toml b/Cargo.toml index 10a2b56..46d107d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2024" [dependencies] -mace-kv = "0.0.23" +mace-kv = "0.0.24" clap = { version = "4.5.48", features = ["derive"] } rand = "0.9.2" log = "0.4.22" diff --git a/README.md b/README.md index 2730dad..0d6598b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ -# mace 0.0.23 vs rocksdb 10.4.2 +# mace 0.0.24 vs rocksdb 10.4.2 + +**mace 0.0.24 traded a slight dip in query performance for a 10+% boost in insertion performance.** ## sequential insert -![mace__sequential_insert](./scripts/mace_sequential_insert.png) +![mace_sequential_insert](./scripts/mace_sequential_insert.png) ![rocksdb_sequential_insert](./scripts/rocksdb_sequential_insert.png) diff --git a/rocksdb/main.cpp b/rocksdb/main.cpp index 928dea1..01f2ca6 100644 --- a/rocksdb/main.cpp +++ b/rocksdb/main.cpp @@ -115,8 +115,8 @@ int main(int argc, char *argv[]) { // top.use_delta_encoding = false; // cfo.table_factory.reset(rocksdb::NewBlockBasedTableFactory(top)); - // use 1GB block cache - auto cache = rocksdb::NewLRUCache(1 << 30); + // use 3GB block cache + auto cache = rocksdb::NewLRUCache(3 << 30); rocksdb::BlockBasedTableOptions table_options{}; table_options.block_cache = cache; cfo.table_factory.reset(NewBlockBasedTableFactory(table_options)); diff --git a/scripts/mace_get.png b/scripts/mace_get.png index 76f706b..4348333 100644 Binary files a/scripts/mace_get.png and b/scripts/mace_get.png differ diff --git a/scripts/mace_mixed.png b/scripts/mace_mixed.png index 1014e28..f609baa 100644 Binary files a/scripts/mace_mixed.png and b/scripts/mace_mixed.png differ diff --git a/scripts/mace_random_insert.png b/scripts/mace_random_insert.png index ad02a08..e82473d 100644 Binary files a/scripts/mace_random_insert.png and b/scripts/mace_random_insert.png differ diff --git a/scripts/mace_scan.png b/scripts/mace_scan.png index 6575d50..877c962 100644 Binary files a/scripts/mace_scan.png and b/scripts/mace_scan.png differ diff --git a/scripts/mace_sequential_insert.png b/scripts/mace_sequential_insert.png index b418617..63bdc84 100644 Binary files a/scripts/mace_sequential_insert.png and b/scripts/mace_sequential_insert.png differ diff --git a/scripts/rocksdb_get.png b/scripts/rocksdb_get.png index 3e44031..63efa0d 100644 Binary files a/scripts/rocksdb_get.png and b/scripts/rocksdb_get.png differ diff --git a/scripts/rocksdb_mixed.png b/scripts/rocksdb_mixed.png index e676087..296b2f9 100644 Binary files a/scripts/rocksdb_mixed.png and b/scripts/rocksdb_mixed.png differ diff --git a/scripts/rocksdb_random_insert.png b/scripts/rocksdb_random_insert.png index 2adb68d..c76af41 100644 Binary files a/scripts/rocksdb_random_insert.png and b/scripts/rocksdb_random_insert.png differ diff --git a/scripts/rocksdb_scan.png b/scripts/rocksdb_scan.png index e447e0e..eeaf557 100644 Binary files a/scripts/rocksdb_scan.png and b/scripts/rocksdb_scan.png differ diff --git a/scripts/rocksdb_sequential_insert.png b/scripts/rocksdb_sequential_insert.png index c8e753d..4933dc9 100644 Binary files a/scripts/rocksdb_sequential_insert.png and b/scripts/rocksdb_sequential_insert.png differ diff --git a/src/main.rs b/src/main.rs index 9013ab4..9f881ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -82,6 +82,7 @@ fn main() { opt.over_provision = true; // large value will use lots of memeory opt.inline_size = args.blob_size; opt.tmp_store = args.mode != "get" && args.mode != "scan"; + opt.cache_capacity = 3 << 30; let mut saved = opt.clone(); saved.tmp_store = false; let mut db = Mace::new(opt.validate().unwrap()).unwrap();