From 3af7c116d41c06822006fb447211e3792862fd7c Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 25 Oct 2026 13:07:48 +0100 Subject: add disk I/O stats --- src/swarm/bootstrap.rs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src/swarm/bootstrap.rs') diff --git a/src/swarm/bootstrap.rs b/src/swarm/bootstrap.rs index 125321b..b725786 100644 --- a/src/swarm/bootstrap.rs +++ b/src/swarm/bootstrap.rs @@ -140,9 +140,18 @@ fn read_swarm_id(doc: &AutoCommit) -> Option { } } -/// A backup to recover from (`--recover-from`, as `GET /admin/document` saves it): the -/// document under a fresh actor, the epoch it is on and the swarm it names. -pub(crate) fn load_backup(path: &Path) -> Result<(AutoCommit, Epoch, String)> { +/// A backup to recover from (`--recover-from`). +pub(crate) struct Backup { + /// Under a fresh actor. + pub(crate) doc: AutoCommit, + pub(crate) epoch: Epoch, + pub(crate) swarm_id: String, + /// The file's size (`swarm::stats`, disk). + pub(crate) bytes: u64, +} + +/// Loads a backup to recover from, as `GET /admin/document` saves it. +pub(crate) fn load_backup(path: &Path) -> Result { let bytes = std::fs::read(path).with_context(|| format!("Reading the backup {}", path.display()))?; let mut doc = AutoCommit::load(&bytes) @@ -156,7 +165,12 @@ pub(crate) fn load_backup(path: &Path) -> Result<(AutoCommit, Epoch, String)> { }; let epoch = snapshot::epoch_of(&mut doc) .map_err(|reason| anyhow::anyhow!("The backup {}: {reason}", path.display()))?; - Ok((doc, epoch, swarm_id)) + Ok(Backup { + doc, + epoch, + swarm_id, + bytes: bytes.len() as u64, + }) } /// Resolves the seeds in `unresolved`, says HELLO to each that resolves, and keeps the -- cgit v1.3.1