From: Stefan Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [RFC PATCH 0/4] fix #3786: add a "deep sync" option to sync jobs
Date: Wed, 15 Jun 2022 10:20:36 +0200 [thread overview]
Message-ID: <20220615082040.96959-1-s.sterz@proxmox.com> (raw)
this series adds a "deep sync" option to sync jobs. a deep sync uses
the information from a previous verification job to re-sync snapshots
that have corrupted chunks.
the deep sync option is added to the "advanced" section of the sync
job configuration intentionally for the reasoning see commit 3.
however, i am not entirely sure if that's the best way of handling
this.
sending this as an rfc because:
a) this is a fairly minimalistic and unoptimized implementation. a
deep sync currently just looks at _every_ manifest and if it's
corrupt re-syncs the snapshot. as described in the bug report
this could be improved by flagging groups during gc /
verification / etc jobs and only looking at groups with corrupt
snapshots.
however, this would require a place to store this information.
afaict currently the only metadata we have about groups is their
owner and that has a dedicated "owner" file. i could just add
a "corrupted" file, but if we need further information about
groups in the future it might make sense to think about a more
flexible solution.
hence, i see three options: a) stick with this simple
implementation, b) leverage gc / verification / etc jobs further
and flag groups with a dedicated "corrupt" file or c) add a yet
to be determined meta-data file for groups and store the flag
there. any input would be greatly appreciated.
b) while i tested this code quite a bit, i am unsure whether i
missed scenarios in which corrupted snapshots might not be
re-synced.
Stefan Sterz (4):
fix #3786: api: add deep sync parameter
fix #3786: server/datastore: add deep sync parameter to pull sync jobs
fix #3786: ui/cli: add deep sync option to ui and cli
fix #3786: docs: document deep sync behavior and prerequisites
docs/managing-remotes.rst | 6 ++++++
pbs-api-types/src/jobs.rs | 12 ++++++++++++
pbs-datastore/src/backup_info.rs | 22 +++++++++++++++++++++-
src/api2/config/sync.rs | 10 ++++++++++
src/api2/pull.rs | 12 ++++++++++--
src/bin/proxmox-backup-manager.rs | 13 +++++++++++--
src/server/pull.rs | 29 +++++++++++++++++++++--------
www/window/SyncJobEdit.js | 11 +++++++++++
8 files changed, 102 insertions(+), 13 deletions(-)
--
2.30.2
next reply other threads:[~2022-06-15 8:21 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-15 8:20 Stefan Sterz [this message]
2022-06-15 8:20 ` [pbs-devel] [RFC PATCH 1/4] fix #3786: api: add deep sync parameter Stefan Sterz
2022-08-02 9:19 ` Fabian Grünbichler
2022-06-15 8:20 ` [pbs-devel] [RFC PATCH 2/4] fix #3786: server/datastore: add deep sync parameter to pull sync jobs Stefan Sterz
2022-08-02 10:07 ` Fabian Grünbichler
2022-06-15 8:20 ` [pbs-devel] [RFC PATCH 3/4] fix #3786: ui/cli: add deep sync option to ui and cli Stefan Sterz
2022-06-15 8:20 ` [pbs-devel] [RFC PATCH 4/4] fix #3786: docs: document deep sync behavior and prerequisites Stefan Sterz
2022-06-22 10:52 ` [pbs-devel] [RFC PATCH 0/4] fix #3786: add a "deep sync" option to sync jobs Matthias Heiserer
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=20220615082040.96959-1-s.sterz@proxmox.com \
--to=s.sterz@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