From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 71E2E1FF14C for ; Fri, 15 May 2026 12:01:48 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4ED3F17383; Fri, 15 May 2026 12:01:48 +0200 (CEST) Message-ID: <8b9b8b55-1c80-495e-a738-c91b5d4c6fa3@proxmox.com> Date: Fri, 15 May 2026 12:01:14 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH proxmox{,-backup} v4 0/8] fix sync level updates for chunk store To: Christian Ebner , pbs-devel@lists.proxmox.com References: <20260514080458.5677-1-c.ebner@proxmox.com> Content-Language: en-US, de-AT From: Robert Obkircher In-Reply-To: <20260514080458.5677-1-c.ebner@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1778839268788 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.056 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 Message-ID-Hash: 53SRGWLW5LXJ52BTBPP4YR46TL5IAZ7W X-Message-ID-Hash: 53SRGWLW5LXJ52BTBPP4YR46TL5IAZ7W X-MailFrom: r.obkircher@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Looks good to me now. I briefly tested that the syncing message is printed when switching away from the Filesystem sync level. The only minor nit would be that the single quotes in the last commit are redundant, because :? already adds double quotes around the path. Reviewed-by: Robert Obkircher Tested-by: Robert Obkircher On 14.05.26 10:05, Christian Ebner wrote: > Currently the sync level configured for a datastore is only > propagated to the chunk store on first lookup, when the chunk > store instance is created. Updating the sync level in the tuning > options does invalidate the cached datastore entry, does however > not re-instantiate the chunk store, to avoid dropping the locks > acquired via the process locker. This means however the sync level > on the chunk store is not updated. > > Fixed by storing the chunk store state inside the mutex, already > present for syncing up concurrent access to the chunk store. This > also improves the code style and fixes a few smaller issues > encountered. > > Changes since version 3 (thanks @Robert for feedback!): > - Avoid premature dropping of chunk store mutex guard on cache inserts > - Drop leftover Arc wrapping from previous iteration of the patch series, > combine locking method calls into single lines. > - Log chunk store base path on syncfs > - Drop unneeded error conversion in tuning option parsing helper > > Changes since version 2: > - Include additional code cleanups > > Changes since version 1 (thanks @Robert for feedback!): > - Fix lost sync level update, move implementation into chunk store > instead > - Only try ensuring the sync level if it actually changed and fix race > window by taking the mutex guard for the check. > - Avoid Arc for chunk store mutex, it can be shared by reference > - Fixed typo > > > proxmox: > > Christian Ebner (1): > pbs-api-types: derive FromStr for DatastoreTuning parsing > > pbs-api-types/src/datastore.rs | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > > proxmox-backup: > > Christian Ebner (7): > datastore: GC: avoid double parsing of datastore tuning options > pbs-config/datastore: add common helper for parsing tuning options > datastore: restrict chunk store mutex scope to crate only > datastore: avoid useless double borrowing of datastore > datastore: move try_ensure_sync_level() implementation to chunk store > datastore: fix sync level update propagation to chunk store > chunk store: include filesystem backing path in log output > > pbs-config/src/datastore.rs | 7 +- > pbs-datastore/src/chunk_store.rs | 82 ++++++++++++++----- > pbs-datastore/src/datastore.rs | 65 ++++++--------- > .../src/local_datastore_lru_cache.rs | 9 +- > src/api2/config/datastore.rs | 12 +-- > 5 files changed, 100 insertions(+), 75 deletions(-) > > > Summary over all repositories: > 6 files changed, 110 insertions(+), 75 deletions(-) >