From e480aaf338e3dfa280f0a78921c024265c811458 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Tue, 15 Mar 2022 12:31:23 +0100 Subject: Make background tranquility a configurable parameter --- src/block/manager.rs | 11 ++++++----- src/block/rc.rs | 8 +++----- 2 files changed, 9 insertions(+), 10 deletions(-) (limited to 'src/block') diff --git a/src/block/manager.rs b/src/block/manager.rs index feb6fb9d..3215d27e 100644 --- a/src/block/manager.rs +++ b/src/block/manager.rs @@ -29,15 +29,13 @@ use garage_rpc::*; use garage_table::replication::{TableReplication, TableShardedReplication}; -use crate::metrics::*; use crate::block::*; +use crate::metrics::*; use crate::rc::*; /// Size under which data will be stored inlined in database instead of as files pub const INLINE_THRESHOLD: usize = 3072; -pub const BACKGROUND_TRANQUILITY: u32 = 2; - // Timeout for RPCs that read and write blocks to remote nodes const BLOCK_RW_TIMEOUT: Duration = Duration::from_secs(30); // Timeout for RPCs that ask other nodes whether they need a copy @@ -82,8 +80,9 @@ pub struct BlockManager { pub replication: TableShardedReplication, /// Directory in which block are stored pub data_dir: PathBuf, - /// Zstd compression level + compression_level: Option, + background_tranquility: u32, mutation_lock: Mutex, @@ -109,6 +108,7 @@ impl BlockManager { db: &sled::Db, data_dir: PathBuf, compression_level: Option, + background_tranquility: u32, replication: TableShardedReplication, system: Arc, ) -> Arc { @@ -139,6 +139,7 @@ impl BlockManager { replication, data_dir, compression_level, + background_tranquility, mutation_lock: Mutex::new(manager_locked), rc, resync_queue, @@ -440,7 +441,7 @@ impl BlockManager { while !*must_exit.borrow() { match self.resync_iter(&mut must_exit).await { Ok(true) => { - tranquilizer.tranquilize(BACKGROUND_TRANQUILITY).await; + tranquilizer.tranquilize(self.background_tranquility).await; } Ok(false) => { tranquilizer.reset(); diff --git a/src/block/rc.rs b/src/block/rc.rs index 0f497c9b..ec3ea44e 100644 --- a/src/block/rc.rs +++ b/src/block/rc.rs @@ -1,7 +1,7 @@ use std::convert::TryInto; -use garage_util::error::*; use garage_util::data::*; +use garage_util::error::*; use garage_util::time::*; use crate::manager::BLOCK_GC_DELAY; @@ -12,9 +12,7 @@ pub struct BlockRc { impl BlockRc { pub(crate) fn new(rc: sled::Tree) -> Self { - Self { - rc - } + Self { rc } } /// Increment the reference counter associated to a hash. @@ -34,7 +32,7 @@ impl BlockRc { .rc .update_and_fetch(&hash, |old| RcEntry::parse_opt(old).decrement().serialize())?; let new_rc = RcEntry::parse_opt(new_rc); - Ok(matches!(new_rc, RcEntry::Deletable {..})) + Ok(matches!(new_rc, RcEntry::Deletable { .. })) } /// Read a block's reference count -- cgit v1.2.3