From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 45E761FF15E for ; Tue, 28 Jan 2025 13:25:55 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 462A8CC8C; Tue, 28 Jan 2025 13:25:54 +0100 (CET) From: Lukas Wagner To: pdm-devel@lists.proxmox.com Date: Tue, 28 Jan 2025 13:25:09 +0100 Message-Id: <20250128122520.167796-5-l.wagner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250128122520.167796-1-l.wagner@proxmox.com> References: <20250128122520.167796-1-l.wagner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.015 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pdm-devel] [PATCH proxmox-datacenter-manager 04/15] task cache: remove max-age machanism X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" This commit removes the time-based caching policy for remote tasks. It will be replaced by another cache replacement policy based on total number of tasks in an upcoming commit. Suggested-by: Dominik Csapak Signed-off-by: Lukas Wagner --- server/src/api/remote_tasks.rs | 11 ++--------- server/src/task_cache.rs | 31 +++++++++---------------------- 2 files changed, 11 insertions(+), 31 deletions(-) diff --git a/server/src/api/remote_tasks.rs b/server/src/api/remote_tasks.rs index 57b59fd..da3b718 100644 --- a/server/src/api/remote_tasks.rs +++ b/server/src/api/remote_tasks.rs @@ -21,13 +21,6 @@ const SUBDIRS: SubdirMap = &sorted!([("list", &Router::new().get(&API_METHOD_LIS }, input: { properties: { - "max-age": { - type: Integer, - optional: true, - // TODO: sensible default max-age - default: 300, - description: "Maximum age of cached task data", - }, filters: { type: TaskFilters, flatten: true, @@ -36,8 +29,8 @@ const SUBDIRS: SubdirMap = &sorted!([("list", &Router::new().get(&API_METHOD_LIS }, )] /// Get the list of tasks for all remotes. -async fn list_tasks(max_age: i64, filters: TaskFilters) -> Result, Error> { - let tasks = task_cache::get_tasks(max_age, filters).await?; +async fn list_tasks(filters: TaskFilters) -> Result, Error> { + let tasks = task_cache::get_tasks(filters).await?; Ok(tasks) } diff --git a/server/src/task_cache.rs b/server/src/task_cache.rs index 211beb4..f24af3f 100644 --- a/server/src/task_cache.rs +++ b/server/src/task_cache.rs @@ -20,7 +20,7 @@ use crate::{api::pve, task_utils}; /// Get tasks for all remotes // FIXME: filter for privileges -pub async fn get_tasks(max_age: i64, filters: TaskFilters) -> Result, Error> { +pub async fn get_tasks(filters: TaskFilters) -> Result, Error> { let (remotes, _) = pdm_config::remotes::config()?; let mut all_tasks = Vec::new(); @@ -42,9 +42,7 @@ pub async fn get_tasks(max_age: i64, filters: TaskFilters) -> Result Result, timestamp: i64) { + fn set_tasks(&mut self, remote: &str, tasks: Vec) { self.dirty = true; self.new_or_updated .remote_tasks - .insert(remote.to_string(), TaskCacheEntry { timestamp, tasks }); + .insert(remote.to_string(), TaskCacheEntry { tasks }); } // Get task data for a given remote. - fn get_tasks(&self, remote: &str, now: i64, max_age: i64) -> Option> { + fn get_tasks(&self, remote: &str) -> Option> { if let Some(entry) = self.content.remote_tasks.get(remote) { - if (entry.timestamp + max_age) < now { - return None; - } - Some(entry.tasks.clone()) } else if let Some(entry) = self.new_or_updated.remote_tasks.get(remote) { - if (entry.timestamp + max_age) < now { - return None; - } Some(entry.tasks.clone()) } else { None @@ -378,7 +366,6 @@ impl TaskCache { #[derive(Debug, Serialize, Deserialize)] /// Per-remote entry in the task cache. struct TaskCacheEntry { - timestamp: i64, tasks: Vec, } @@ -569,12 +556,12 @@ mod tests { }); } - cache.set_tasks("some-remote", tasks.clone(), now); + cache.set_tasks("some-remote", tasks.clone()); cache.save()?; let cache = TaskCache::new(temp_file.path().into(), options)?; - let res = cache.get_tasks("some-remote", now, 10000).unwrap(); + let res = cache.get_tasks("some-remote").unwrap(); assert_eq!(tasks, res); Ok(()) -- 2.39.5 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel