From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id CB1D496C56 for ; Fri, 1 Mar 2024 11:43:56 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A7DEC305AF for ; Fri, 1 Mar 2024 11:43:26 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 1 Mar 2024 11:43:25 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 7EB13415C4 for ; Fri, 1 Mar 2024 11:43:25 +0100 (CET) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Fri, 01 Mar 2024 11:43:24 +0100 Message-Id: To: "Proxmox Backup Server development discussion" From: "Hannes Laimer" X-Mailer: aerc 0.14.0 References: <20240222103319.49966-1-h.laimer@proxmox.com> In-Reply-To: X-SPAM-LEVEL: Spam detection results: 0 AWL -0.007 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 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com] Subject: Re: [pbs-devel] [PATCH proxmox-backup] datastore: remove datastore from internal cache based on maintenance mode X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2024 10:43:56 -0000 Thanks for the review, will send a v2 On Thu Feb 29, 2024 at 6:13 PM CET, Gabriel Goller wrote: > Tested this thoroughly and it works as advertised! > > Just some small nits inline: > > > impl MaintenanceMode { > > + /// Used for deciding weather the datastore is cleared from the in= ternal cache after the last > > Small typo: weather -> whether > > > + // remove datastore from cache iff last task finished > > + // and datastore is in a maintenance mode that says it sho= uld be > > Did something get cut off here? The sentence doesn't sound correct... > I see where you're coming from, if the maintanance mode says it should be clear from cache, since the maintenance mode defines weather it should be or not. But I'll phrase this better > > + let remove_from_cache =3D last_task > > + && pbs_config::datastore::config() > > + .and_then(|(s, _)| s.lookup::("da= tastore", &self.name())) > > `self.name()` is enough here, we don't need `&self.name()` > > > + pub fn update_datastore_cache() -> Result<(), Error> { > > + let (config, _digest) =3D pbs_config::datastore::config()?; > > + for (store, (_, _)) in &config.sections { > > + let datastore: DataStoreConfig =3D config.lookup("datastor= e", &store)?; > > `store` is already a &String, we don't need to write `&store` > > > + if datastore > > + .get_maintenance_mode() > > + .map_or(false, |m| m.clear_from_cache()) > > + { > > + let _ =3D DataStore::lookup_datastore(&store, Some(Ope= ration::Lookup)); > > Same here > > > match operation { > > Operation::Read =3D> task.active_opera= tions.read +=3D count, > > Operation::Write =3D> task.active_oper= ations.write +=3D count, > > Operation::Lookup =3D> (), // no IO mu= st happen there > > }; > > + updated_active_operations =3D task.active_= operations.clone(); > > You can remove the `.clone()` call here > > > Consider: > > Tested-by: Gabriel Goller > Reviewed-by: Gabriel Goller > > > _______________________________________________ > pbs-devel mailing list > pbs-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel