all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Shan Shaji <s.shaji@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [PATCH proxmox{-backup,} 0/9] fix #7903: rebuild local S3 chunk markers
Date: Mon, 19 Oct 2026 18:03:50 +0200	[thread overview]
Message-ID: <20261019160359.20851-1-s.shaji@proxmox.com> (raw)

This series depends on the following series: [1]

Reusing an S3-backed datastore currently restores the backup metadata to
the local cache without creating local chunk markers. A garbage collection
run is then required to recreate markers for chunks referenced by the backup
indexes.

To fix this, add an optional 'rebuild-chunk-markers' option during datastore
creation to recreate the markers. If the number of chunks is large,
datastore creation together with marker file creation could take a significant
amount of time. Therefore, the option is disabled by default. When I
tested the changes on cloudflare R2 storage, it took 3m 27.1s to create
352670 markers.

Changes since RFC [2]: Thanks @chris for the feedback and offlist
                       clarifications.

- Remove rebuild-chunk-markers option from the s3-refresh command.
- The rebuild-chunk-markers option is now exclusive to datastore creation. Exposed
  the option in the UI and backup-manager.
- Use 'impl Trait' instead of generics.
- Made the chunkstore dependency on the pagination helper explicit.
- Add a comment explaining why holding the chunk store is acceptable.
- Add progress logs with throttling.
- Move the LogThrottle implementation to the proxmox-log crate.

- [1] https://lore.proxmox.com/pbs-devel/20261014071715.88590-1-c.ebner@proxmox.com/T/
- [2] https://lore.proxmox.com/pbs-devel/2d665615-ed2e-4b82-b166-85d0f5eb41d5@proxmox.com/T/#t

proxmox-backup:

Shan Shaji (8):
  refactor: remove local `LogThrottle` in favor of proxmox-log
  datastore: factor out s3 chunk objects pagination into a helper
  pbs-datastore: inherit proxmox-log crate from workspace
  datastore: add method to create zero-byte chunk markers
  fix #7908: datastore: api: add option to create zero-byte chunk
    markers
  fix #7908: datastore: ui: add option to create zero-byte chunk markers
  fix #7908: backup-manager: add option to create zero-byte chunk
    markers
  docs: add explanation regarding ``rebuild-chunk-markers`` option

 docs/storage.rst                            |   7 +-
 pbs-client/src/lib.rs                       |   3 -
 pbs-client/src/log_throttle.rs              |  36 -----
 pbs-datastore/Cargo.toml                    |   1 +
 pbs-datastore/src/datastore.rs              | 143 +++++++++++++++-----
 proxmox-backup-client/src/main.rs           |   3 +-
 src/api2/config/datastore.rs                |  15 +-
 src/api2/node/disks/directory.rs            |   1 +
 src/api2/node/disks/zfs.rs                  |   1 +
 src/bin/proxmox_backup_manager/datastore.rs |   6 +
 www/window/DataStoreEdit.js                 |  20 +++
 11 files changed, 158 insertions(+), 78 deletions(-)
 delete mode 100644 pbs-client/src/log_throttle.rs


proxmox:

Shan Shaji (1):
  proxmox-log: add LogThrottle implementation

 proxmox-log/src/lib.rs          |  1 +
 proxmox-log/src/log_throttle.rs | 39 +++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 proxmox-log/src/log_throttle.rs


Summary over all repositories:
  13 files changed, 198 insertions(+), 78 deletions(-)

--
Generated by murpp 0.10.0




             reply	other threads:[~2026-10-19 16:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-19 16:03 Shan Shaji [this message]
2026-10-19 16:03 ` [PATCH proxmox-backup 1/9] refactor: remove local `LogThrottle` in favor of proxmox-log Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 2/9] datastore: factor out s3 chunk objects pagination into a helper Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 3/9] pbs-datastore: inherit proxmox-log crate from workspace Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 4/9] datastore: add method to create zero-byte chunk markers Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 5/9] fix #7908: datastore: api: add option " Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 6/9] fix #7908: datastore: ui: " Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 7/9] fix #7908: backup-manager: " Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox-backup 8/9] docs: add explanation regarding ``rebuild-chunk-markers`` option Shan Shaji
2026-10-19 16:03 ` [PATCH proxmox 9/9] proxmox-log: add LogThrottle implementation Shan Shaji

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=20261019160359.20851-1-s.shaji@proxmox.com \
    --to=s.shaji@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal