From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [PATCH proxmox{,-backup} v3 0/7] fix sync level updates for chunk store
Date: Tue, 12 May 2026 15:10:40 +0200 [thread overview]
Message-ID: <20260512131047.689089-1-c.ebner@proxmox.com> (raw)
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 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 (6):
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
pbs-config/src/datastore.rs | 12 ++-
pbs-datastore/src/chunk_store.rs | 82 ++++++++++++++-----
pbs-datastore/src/datastore.rs | 73 ++++++++---------
.../src/local_datastore_lru_cache.rs | 12 +--
src/api2/config/datastore.rs | 12 +--
5 files changed, 113 insertions(+), 78 deletions(-)
Summary over all repositories:
6 files changed, 123 insertions(+), 78 deletions(-)
--
Generated by murpp 0.11.0
next reply other threads:[~2026-05-12 13:11 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-12 13:10 Christian Ebner [this message]
2026-05-12 13:10 ` [PATCH proxmox v3 1/7] pbs-api-types: derive FromStr for DatastoreTuning parsing Christian Ebner
2026-05-12 13:10 ` [PATCH proxmox-backup v3 2/7] datastore: GC: avoid double parsing of datastore tuning options Christian Ebner
2026-05-12 13:10 ` [PATCH proxmox-backup v3 3/7] pbs-config/datastore: add common helper for parsing " Christian Ebner
2026-05-12 13:10 ` [PATCH proxmox-backup v3 4/7] datastore: restrict chunk store mutex scope to crate only Christian Ebner
2026-05-12 13:10 ` [PATCH proxmox-backup v3 5/7] datastore: avoid useless double borrowing of datastore Christian Ebner
2026-05-12 13:10 ` [PATCH proxmox-backup v3 6/7] datastore: move try_ensure_sync_level() implementation to chunk store Christian Ebner
2026-05-12 13:10 ` [PATCH proxmox-backup v3 7/7] datastore: fix sync level update propagation " Christian Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260512131047.689089-1-c.ebner@proxmox.com \
--to=c.ebner@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox