summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-25 13:38:59 +0100
committertv <tv@krebsco.de>2026-10-25 13:38:59 +0100
commitf52ae6973299fa3c1d81758838951e39904e1d84 (patch)
treeeeadc6f698d1fa99d33268f997e8def5ee403038 /src/main.rs
parent022ddb4bf167a12cd45b4a5cac27739f92449eff (diff)
add files module to consistently track stats
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/main.rs b/src/main.rs
index 57c26b5..76e5ff0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -18,6 +18,7 @@ mod api;
mod backoff;
mod config;
mod document;
+mod files;
mod logging;
mod remake;
mod state;
@@ -86,10 +87,12 @@ async fn main() -> Result<()> {
"Using Mycelium REST API"
);
+ let files = Arc::new(files::Files::default());
let mut seeds: Vec<String> = args.seeds.clone();
let (state_file, remembered) = match &args.state_file {
Some(path) => {
- let (file, remembered) = swarm::state_file::StateFile::open(path.clone());
+ let (file, remembered) =
+ swarm::state_file::StateFile::open(path.clone(), Arc::clone(&files));
(Some(Arc::new(file)), remembered)
}
None => (None, None),
@@ -117,17 +120,12 @@ async fn main() -> Result<()> {
let (change_events, _) = broadcast::channel(256);
let recovered = match &args.recover_from {
- Some(path) => Some(bootstrap::load_backup(path)?),
+ Some(path) => Some(bootstrap::load_backup(path, &files)?),
None => None,
};
- let (initial_doc, recovered_epoch, recovered_swarm, backup_bytes) = match recovered {
- Some(backup) => (
- backup.doc,
- Some(backup.epoch),
- Some(backup.swarm_id),
- Some(backup.bytes),
- ),
- None => (AutoCommit::new(), None, None, None),
+ let (initial_doc, recovered_epoch, recovered_swarm) = match recovered {
+ Some(backup) => (backup.doc, Some(backup.epoch), Some(backup.swarm_id)),
+ None => (AutoCommit::new(), None, None),
};
let initial_epoch = match (recovered_epoch, args.debug_epoch) {
(Some(epoch), _) => epoch,
@@ -179,6 +177,7 @@ async fn main() -> Result<()> {
blobs: Arc::new(swarm::blob::Blobs::new(args.blob_chunk_kib * 1024)),
protocol_writers: Arc::new(args.protocol_writers.iter().cloned().collect()),
state_file,
+ files,
config: Arc::new(config.report()),
neighbours: Default::default(),
pulling: Default::default(),
@@ -193,14 +192,6 @@ async fn main() -> Result<()> {
trace!("Application state initialized");
- // Files read before the state existed.
- let read = backup_bytes
- .into_iter()
- .chain(state.state_file.as_ref().and_then(|file| file.read_bytes()));
- for bytes in read {
- state.stats.disk_read(bytes);
- }
-
// Join the remembered swarm and no other; HELLOs claim it. A backup to recover from
// names its swarm itself, which wins.
let start = match recovered_swarm {