diff options
author | Alex Auvolat <alex@adnab.me> | 2022-07-18 18:40:57 +0200 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-07-29 12:24:48 +0200 |
commit | 2f111e6b3d772b10c8ed6279ce0c82d22852afd1 (patch) | |
tree | c9f4673aa34c12bda389b523753968a9bb92e0ee /src/model/garage.rs | |
parent | 1b2e1296eb99630e969e585ede0424072adc2d0c (diff) | |
download | garage-2f111e6b3d772b10c8ed6279ce0c82d22852afd1.tar.gz garage-2f111e6b3d772b10c8ed6279ce0c82d22852afd1.zip |
Performance improvements:
- reduce contention on mutation_lock by having 256 of them
- better lmdb defaults
Diffstat (limited to 'src/model/garage.rs')
-rw-r--r-- | src/model/garage.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/model/garage.rs b/src/model/garage.rs index 15769a17..0d239df6 100644 --- a/src/model/garage.rs +++ b/src/model/garage.rs @@ -104,11 +104,16 @@ impl Garage { std::fs::create_dir_all(&db_path).expect("Unable to create LMDB data directory"); let map_size = garage_db::lmdb_adapter::recommended_map_size(); - let db = db::lmdb_adapter::heed::EnvOpenOptions::new() - .max_dbs(100) - .map_size(map_size) - .open(&db_path) - .expect("Unable to open LMDB DB"); + use db::lmdb_adapter::heed; + let mut env_builder = heed::EnvOpenOptions::new(); + env_builder.max_dbs(100); + env_builder.max_readers(500); + env_builder.map_size(map_size); + unsafe { + env_builder.flag(heed::flags::Flags::MdbNoSync); + env_builder.flag(heed::flags::Flags::MdbNoMetaSync); + } + let db = env_builder.open(&db_path).expect("Unable to open LMDB DB"); db::lmdb_adapter::LmdbDb::init(db) } e => { |