Enhance substrate ingest limits and optimize simulator stream reuse

This commit is contained in:
Valère Plantevin
2026-05-12 11:44:01 -04:00
parent d3f09ee062
commit 5d2552efb5
9 changed files with 81 additions and 52 deletions

View File

@@ -38,9 +38,17 @@ pub async fn run_t2_emitter(
) -> u64 {
let period = Duration::from_nanos((1.0e9 / rate_hz) as u64);
let mut ticker = tokio::time::interval(period);
ticker.set_missed_tick_behavior(MissedTickBehavior::Delay);
ticker.set_missed_tick_behavior(MissedTickBehavior::Skip);
let mut sent: u64 = 0;
let mut send = match conn.open_uni().await {
Ok(s) => s,
Err(e) => {
tracing::warn!(error = %e, "T2 open_uni failed; emitter exiting");
return 0;
}
};
loop {
ticker.tick().await;
if interrupted.load(Ordering::SeqCst) {
@@ -57,25 +65,19 @@ pub async fn run_t2_emitter(
};
slot.seq = slot.seq.wrapping_add(1);
match conn.open_uni().await {
Ok(mut send) => {
if let Err(e) = send.write_all(&msg.to_bytes()).await {
tracing::warn!(error = %e, "T2 write_all failed");
continue;
}
if let Err(e) = send.finish() {
tracing::warn!(error = %e, "T2 finish failed");
continue;
}
sent += 1;
counter.store(sent, Ordering::Relaxed);
}
Err(e) => {
tracing::warn!(error = %e, "T2 open_uni failed; emitter exiting");
break;
}
if let Err(e) = send.write_all(&msg.to_bytes()).await {
tracing::warn!(error = %e, "T2 write_all failed; stream closed?");
break;
}
sent += 1;
counter.store(sent, Ordering::Relaxed);
}
if let Err(e) = send.finish() {
tracing::warn!(error = %e, "T2 finish failed");
}
sent
}
@@ -92,7 +94,7 @@ pub async fn run_t3_emitter(
) -> (u64, u64) {
let period = Duration::from_nanos((1.0e9 / rate_hz) as u64);
let mut ticker = tokio::time::interval(period);
ticker.set_missed_tick_behavior(MissedTickBehavior::Delay);
ticker.set_missed_tick_behavior(MissedTickBehavior::Skip);
let mut sent: u64 = 0;
let mut timeouts: u64 = 0;