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 58F581FF15C for <inbox@lore.proxmox.com>; Fri, 4 Apr 2025 15:50:07 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id CABEA32396; Fri, 4 Apr 2025 15:49:52 +0200 (CEST) From: Christian Ebner <c.ebner@proxmox.com> To: pbs-devel@lists.proxmox.com Date: Fri, 4 Apr 2025 15:49:31 +0200 Message-Id: <20250404134936.425392-3-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250404134936.425392-1-c.ebner@proxmox.com> References: <20250404134936.425392-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH v4 proxmox-backup 2/7] client: backup writer: fix upload stats size and rate for push sync 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> Currently, the logical size of the uploaded chunks is used for size and upload rate calculation in case of sync jobs in push direction, leading to incorrect values of the actual transferred size and rate. Use the compressed chunk size instead, by returning the more verbose `UploadStats` on `upload_index_chunk_info` calls and use it's compressed size for the transferred `bytes` of `SyncStats` instead, being finally used to display the upload size and calculate the rate for the push sync job. Signed-off-by: Christian Ebner <c.ebner@proxmox.com> --- changes since version 3: - rebased onto current master pbs-client/src/backup_stats.rs | 20 ++++++++++---------- pbs-client/src/backup_writer.rs | 4 ++-- src/server/push.rs | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/pbs-client/src/backup_stats.rs b/pbs-client/src/backup_stats.rs index f0563a001..edf7ef3c4 100644 --- a/pbs-client/src/backup_stats.rs +++ b/pbs-client/src/backup_stats.rs @@ -15,16 +15,16 @@ pub struct BackupStats { } /// Extended backup run statistics and archive checksum -pub(crate) struct UploadStats { - pub(crate) chunk_count: usize, - pub(crate) chunk_reused: usize, - pub(crate) chunk_injected: usize, - pub(crate) size: usize, - pub(crate) size_reused: usize, - pub(crate) size_injected: usize, - pub(crate) size_compressed: usize, - pub(crate) duration: Duration, - pub(crate) csum: [u8; 32], +pub struct UploadStats { + pub chunk_count: usize, + pub chunk_reused: usize, + pub chunk_injected: usize, + pub size: usize, + pub size_reused: usize, + pub size_injected: usize, + pub size_compressed: usize, + pub duration: Duration, + pub csum: [u8; 32], } impl UploadStats { diff --git a/pbs-client/src/backup_writer.rs b/pbs-client/src/backup_writer.rs index 325425069..d93b3e7e8 100644 --- a/pbs-client/src/backup_writer.rs +++ b/pbs-client/src/backup_writer.rs @@ -275,7 +275,7 @@ impl BackupWriter { archive_name: &BackupArchiveName, stream: impl Stream<Item = Result<MergedChunkInfo, Error>>, options: UploadOptions, - ) -> Result<BackupStats, Error> { + ) -> Result<UploadStats, Error> { let mut param = json!({ "archive-name": archive_name }); let prefix = if let Some(size) = options.fixed_size { param["size"] = size.into(); @@ -359,7 +359,7 @@ impl BackupWriter { .post(&format!("{prefix}_close"), Some(param)) .await?; - Ok(upload_stats.to_backup_stats()) + Ok(upload_stats) } pub async fn upload_stream( diff --git a/src/server/push.rs b/src/server/push.rs index 0db3dff30..f00a6b1e0 100644 --- a/src/server/push.rs +++ b/src/server/push.rs @@ -1016,7 +1016,7 @@ async fn push_index( Ok(SyncStats { chunk_count: upload_stats.chunk_count as usize, - bytes: upload_stats.size as usize, + bytes: upload_stats.size_compressed as usize, elapsed: upload_stats.duration, removed: None, }) -- 2.39.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel