aboutsummaryrefslogtreecommitdiffstats
path: root/src/simtest/bench.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-06 04:50:55 +0100
committertv <tv@krebsco.de>2026-11-06 04:50:55 +0100
commit109a77cdd0f2fd479b5b6faf78c288a41d9ae6c7 (patch)
treee7f8deb5dd8bea4eee23f103744dedfffa7a1474 /src/simtest/bench.rs
parent50d57c3d223cb5fab3e213023c2466b602742106 (diff)
sent hashes elsewhere measured
Diffstat (limited to 'src/simtest/bench.rs')
-rw-r--r--src/simtest/bench.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/simtest/bench.rs b/src/simtest/bench.rs
index 6e216a9..da8e322 100644
--- a/src/simtest/bench.rs
+++ b/src/simtest/bench.rs
@@ -666,23 +666,31 @@ async fn trees(out: &mut String, nodes: &[AppState], net: &crate::transport::sim
/// How many changes each session counts as sent to its peer (`SyncSession::sent_hashes_len`),
/// after the workload: the most, and on average. Kept until the peer's next message
/// says it has them; a session whose peer never sends one (along a tree, with one
-/// writer) keeps all.
+/// writer) keeps all. And of those, how many because another parent brings them
+/// (`SyncSession::known_to_peer`): a session with a neighbour we count as covered.
async fn sent_kept(out: &mut String, nodes: &[AppState]) {
- let mut most = 0;
- let mut sum = 0;
+ let (mut most, mut sum) = (0, 0);
+ let (mut most_elsewhere, mut sum_elsewhere) = (0, 0);
let mut sessions = 0;
for node in nodes {
for (_, peer_state) in node.peers_snapshot().await {
- let kept = peer_state.lock().await.sync.sent_hashes_len();
+ let peer_state = peer_state.lock().await;
+ let kept = peer_state.sync.sent_hashes_len();
+ let elsewhere = peer_state.sync.sent_known_elsewhere_len();
most = most.max(kept);
sum += kept;
+ most_elsewhere = most_elsewhere.max(elsewhere);
+ sum_elsewhere += elsewhere;
sessions += 1;
}
}
+ let sessions = f64::from(sessions.max(1));
let _ = writeln!(
out,
- " changes counted as sent, per session: {most} at most, {:.1} on average",
- sum as f64 / f64::from(sessions.max(1)),
+ " changes counted as sent, per session: {most} at most, {:.1} on average; \
+ of those, because another parent brings them: {most_elsewhere} at most, {:.1} on average",
+ sum as f64 / sessions,
+ sum_elsewhere as f64 / sessions,
);
}