From 29634f689a6de95bf420347647bfe75fbf0b5cde Mon Sep 17 00:00:00 2001 From: Lambda Date: Fri, 6 Sep 2024 18:03:37 +0000 Subject: [PATCH] service, database: extract cache capacity to variable --- src/database.rs | 54 +++++++++++++------------------------------------ src/service.rs | 29 ++++++++++---------------- 2 files changed, 25 insertions(+), 58 deletions(-) diff --git a/src/database.rs b/src/database.rs index 1435247d..a719c876 100644 --- a/src/database.rs +++ b/src/database.rs @@ -351,6 +351,15 @@ impl KeyValueDatabase { } }; + #[expect( + clippy::as_conversions, + clippy::cast_sign_loss, + clippy::cast_possible_truncation, + reason = "saturating to usize is fine" + )] + let cache_capacity = + (100_000.0 * config.cache_capacity_modifier) as usize; + let db = Self { db: builder.clone(), userid_password: builder.open_tree("userid_password")?, @@ -482,46 +491,11 @@ impl KeyValueDatabase { .try_into() .expect("pdu cache capacity fits into usize"), )), - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] - auth_chain_cache: Mutex::new(LruCache::new( - (100_000.0 * config.cache_capacity_modifier) as usize, - )), - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] - shorteventid_cache: Mutex::new(LruCache::new( - (100_000.0 * config.cache_capacity_modifier) as usize, - )), - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] - eventidshort_cache: Mutex::new(LruCache::new( - (100_000.0 * config.cache_capacity_modifier) as usize, - )), - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] - shortstatekey_cache: Mutex::new(LruCache::new( - (100_000.0 * config.cache_capacity_modifier) as usize, - )), - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] - statekeyshort_cache: Mutex::new(LruCache::new( - (100_000.0 * config.cache_capacity_modifier) as usize, - )), + auth_chain_cache: Mutex::new(LruCache::new(cache_capacity)), + shorteventid_cache: Mutex::new(LruCache::new(cache_capacity)), + eventidshort_cache: Mutex::new(LruCache::new(cache_capacity)), + shortstatekey_cache: Mutex::new(LruCache::new(cache_capacity)), + statekeyshort_cache: Mutex::new(LruCache::new(cache_capacity)), our_real_users_cache: RwLock::new(HashMap::new()), appservice_in_room_cache: RwLock::new(HashMap::new()), lasttimelinecount_cache: Mutex::new(HashMap::new()), diff --git a/src/service.rs b/src/service.rs index 06b4ce61..c1feebb9 100644 --- a/src/service.rs +++ b/src/service.rs @@ -63,6 +63,14 @@ impl Services { config: Config, reload_handles: FilterReloadHandles, ) -> Result { + #[expect( + clippy::as_conversions, + clippy::cast_sign_loss, + clippy::cast_possible_truncation, + reason = "usize is an acceptable range to saturate to" + )] + let cache_capacity = (100.0 * config.cache_capacity_modifier) as usize; + Ok(Self { appservice: appservice::Service::build(db)?, pusher: pusher::Service { @@ -99,21 +107,11 @@ impl Services { }, state_accessor: rooms::state_accessor::Service { db, - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] server_visibility_cache: StdMutex::new(LruCache::new( - (100.0 * config.cache_capacity_modifier) as usize, + cache_capacity, )), - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] user_visibility_cache: StdMutex::new(LruCache::new( - (100.0 * config.cache_capacity_modifier) as usize, + cache_capacity, )), }, state_cache: rooms::state_cache::Service { @@ -121,13 +119,8 @@ impl Services { }, state_compressor: rooms::state_compressor::Service { db, - #[expect( - clippy::as_conversions, - clippy::cast_sign_loss, - clippy::cast_possible_truncation - )] stateinfo_cache: StdMutex::new(LruCache::new( - (100.0 * config.cache_capacity_modifier) as usize, + cache_capacity, )), }, timeline: rooms::timeline::Service {