[pbs-devel] [RFC proxmox{, -backup} 0/6] add support for configuring max

Hannes Laimer h.laimer at proxmox.com
Thu Nov 6 10:41:43 CET 2025


ping

On 9/4/25 16:37, Hannes Laimer wrote:
> This uses POSIX semaphores to control how many backups run at any given
> time. Semaphores seemed like a fitting choice given the problem, so I
> added a basic wrapper for named ones to proxmox-sys. Also, the changes
> needed to add concurrency limits in PBS were minimal.
> 
> A few questions I still have and would be great to get some feedback on,
>   - do we want to use semaphores like proposed here? Are there any good
>     reasons not to?
>   - should we include things like verify/gc/prune? Would an extra sem for
>     reading make sense(so separate limits for r and w, idk if there's a
>     use-case)?
> 
> Nothing UI-wise is included, and for changes to apply the proxy has to
> be restarted. Not sure if restarting the proxy is "ok-ish" ux wise, I
> guess not :P But changing it involves re-creating the semaphore, which
> is fine, just that there won't exist one for a really short time...
> 
> 
> proxmox:
> 
> Hannes Laimer (2):
>    sys: add wrapper for POSIX semaphores
>    pbs-api-types: add concurrency_limit to DataStoreConfig
> 
>   pbs-api-types/src/datastore.rs |   5 +
>   proxmox-sys/Cargo.toml         |   1 +
>   proxmox-sys/src/lib.rs         |   2 +
>   proxmox-sys/src/semaphore.rs   | 164 +++++++++++++++++++++++++++++++++
>   4 files changed, 172 insertions(+)
>   create mode 100644 proxmox-sys/src/semaphore.rs
> 
> 
> proxmox-backup:
> 
> Hannes Laimer (4):
>    api: config: update/delete concurrency_limit on datastore
>    Cargo.toml: add 'semaphore' feature to proxmox-sys dep
>    bin: proxy: initialize concurrency semaphores for datastores
>    api: backup: wait for semaphore if one exists
> 
>   Cargo.toml                      |  2 +-
>   src/api2/backup/mod.rs          | 24 ++++++++++++++++++++++--
>   src/api2/config/datastore.rs    |  9 +++++++++
>   src/bin/proxmox-backup-proxy.rs | 11 +++++++++++
>   4 files changed, 43 insertions(+), 3 deletions(-)
> 
> 
> Summary over all repositories:
>    8 files changed, 215 insertions(+), 3 deletions(-)
> 





More information about the pbs-devel mailing list