From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 480F81FF15C for <inbox@lore.proxmox.com>; Fri, 4 Apr 2025 20:01:29 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A56E538DE; Fri, 4 Apr 2025 20:01:16 +0200 (CEST) Mime-Version: 1.0 Date: Fri, 04 Apr 2025 20:01:11 +0200 Message-Id: <D8Y1UJVBD2KE.I6J4VWZW6PXQ@proxmox.com> From: "Max Carrara" <m.carrara@proxmox.com> To: "Proxmox Backup Server development discussion" <pbs-devel@lists.proxmox.com> X-Mailer: aerc 0.18.2-0-ge037c095a049 References: <20250404134936.425392-1-c.ebner@proxmox.com> In-Reply-To: <20250404134936.425392-1-c.ebner@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.079 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, pull.rs, jobs.rs, push.rs, sync.rs] Subject: Re: [pbs-devel] [PATCH v4 proxmox proxmox-backup 0/7] fix #4182: concurrent group pull/push support for sync jobs X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> On Fri Apr 4, 2025 at 3:49 PM CEST, Christian Ebner wrote: > Syncing contents from/to a remote source via a sync job suffers from > low throughput on high latency networks because of limitations by the > HTTP/2 connection, as described in [0]. To improve, syncing multiple > groups in parallel by establishing multiple reader instances has been > suggested. > > This patch series implements the functionality by adding the sync job > configuration property `parallel-groups`, allowing to define the > number of concurrent groups pull/push futures to be instantiated and > executed for each job. > The property is currently not exposed on the UI, as intended to be > set in the config directly for now. > > Examplary configuration: > ``` > sync: s-8764c440-3a6c > ns > owner root@pam > remote local > remote-ns > remote-store push-target-store > remove-vanished false > store datastore > sync-direction push > parallel-groups 4 > ``` > > Since log messages are now also written concurrently, prefix logs > related to groups, snapshots and archives with their respective > context prefix and add context to error messages. > > Further, improve logging especially for sync jobs in push direction, > which only displayed limited information so far. > > [0] https://bugzilla.proxmox.com/show_bug.cgi?id=4182 So, I've given the code a good look -- unfortunately it's too late to do any additional testing, but I wanted to shoot this out regardless in the meantime. Code Review =========== As always, the code quality is pristine -- I like that you're factoring things out into little helper functions where applicable instead of letting the existing methods grow. Very nice. Also applies cleanly and is formatted correctly, naturally. Really can't complain, the changes are straightforward and easy to follow. There's only a couple little things I spotted; see my comments inline. Regarding that large comment about mutexes and atomics: That's something I just wanted to mention, so just to make it clear, you don't need to apply my suggestion :P It's probably something we should have a look at tree-wide for other data structures, too. Splendid work as always, anyhow! For now, until I get to test this, consider: Reviewed-by: Max Carrara <m.carrara@proxmox.com> > > proxmox: > > Christian Ebner (1): > pbs api types: add 'parallel-groups' to sync job config > > pbs-api-types/src/jobs.rs | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > proxmox-backup: > > Christian Ebner (6): > client: backup writer: fix upload stats size and rate for push sync > api: config/sync: add optional `parallel-groups` property > fix #4182: server: sync: allow pulling groups concurrently > server: pull: prefix log messages and add error context > server: sync: allow pushing groups concurrently > server: push: prefix log messages and add additional logging > > pbs-client/src/backup_stats.rs | 20 +-- > pbs-client/src/backup_writer.rs | 4 +- > pbs-datastore/src/store_progress.rs | 2 +- > src/api2/config/sync.rs | 10 ++ > src/api2/pull.rs | 9 +- > src/api2/push.rs | 9 +- > src/server/pull.rs | 209 +++++++++++++++++----------- > src/server/push.rs | 147 ++++++++++++++----- > src/server/sync.rs | 10 +- > 9 files changed, 287 insertions(+), 133 deletions(-) _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel