Skip to content

network: exclude TX traffic from conn performance monitoring#6519

Merged
algorandskiy merged 6 commits intoalgorand:masterfrom
algorandskiy:pavel/network-perf-conn-sim
Jan 7, 2026
Merged

network: exclude TX traffic from conn performance monitoring#6519
algorandskiy merged 6 commits intoalgorand:masterfrom
algorandskiy:pavel/network-perf-conn-sim

Conversation

@algorandskiy
Copy link
Copy Markdown
Contributor

@algorandskiy algorandskiy commented Dec 20, 2025

Summary

Implemented a simulator for connPerfMonitor adjustments. It showed (below) that nodes produced more traffic are penalized less. This could be an issue for sophisticated relay runners who somehow dynamically adjust connectivity based on traffic quality in case of unique spam of transactions.
To workaround, excluded TX messages from connPerfMonitor tracking.

=== RUN   TestConnMonitor_Simulate/normalShuffle
    connPerfMon_test.go:406: Monitor advanced to stage 0 at tick 0
    connPerfMon_test.go:406: Monitor advanced to stage 1 at tick 186175
    connPerfMon_test.go:406: Monitor advanced to stage 2 at tick 660343
    connPerfMon_test.go:406: Monitor advanced to stage 3 at tick 2498931
    connPerfMon_test.go:418: normalShuffle:  6139854 messages over 2755276 ticks
    connPerfMon_test.go:420: noDupPeer2: delay=3502742912 firstMessagePercentage=0.05
    connPerfMon_test.go:420: noDupPeer1: delay=3502742911 firstMessagePercentage=0.06
    connPerfMon_test.go:420: dupPeer1: delay=3352688862 firstMessagePercentage=0.10
    connPerfMon_test.go:420: dupPeer2: delay=3285503228 firstMessagePercentage=0.09
    connPerfMon_test.go:420: dupPeer3: delay=3198444157 firstMessagePercentage=0.08
    connPerfMon_test.go:420: dupPlusPeer3: delay=508228763 firstMessagePercentage=0.12
    connPerfMon_test.go:420: dupPlusPeer2: delay=508228751 firstMessagePercentage=0.20
    connPerfMon_test.go:420: dupPlusPeer1: delay=508228737 firstMessagePercentage=0.30
=== RUN   TestConnMonitor_Simulate/uniformShuffle
    connPerfMon_test.go:406: Monitor advanced to stage 0 at tick 0
    connPerfMon_test.go:406: Monitor advanced to stage 1 at tick 186769
    connPerfMon_test.go:406: Monitor advanced to stage 2 at tick 656594
    connPerfMon_test.go:406: Monitor advanced to stage 3 at tick 2497457
    connPerfMon_test.go:418: uniformShuffle:  6527665 messages over 2763951 ticks
    connPerfMon_test.go:420: noDupPeer1: delay=3589952936 firstMessagePercentage=0.03
    connPerfMon_test.go:420: noDupPeer2: delay=3589952936 firstMessagePercentage=0.03
    connPerfMon_test.go:420: dupPeer3: delay=3208482689 firstMessagePercentage=0.10
    connPerfMon_test.go:420: dupPeer1: delay=3207660803 firstMessagePercentage=0.10
    connPerfMon_test.go:420: dupPeer2: delay=3207169049 firstMessagePercentage=0.10
    connPerfMon_test.go:420: dupPlusPeer2: delay=769858793 firstMessagePercentage=0.21
    connPerfMon_test.go:420: dupPlusPeer3: delay=769858793 firstMessagePercentage=0.21
    connPerfMon_test.go:420: dupPlusPeer1: delay=769858793 firstMessagePercentage=0.21
--- PASS: TestConnMonitor_Simulate (328.72s)

Test Plan

This is a new test.

@codecov
Copy link
Copy Markdown

codecov bot commented Dec 20, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 47.69%. Comparing base (7e0d514) to head (cfe5c3e).
⚠️ Report is 2 commits behind head on master.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6519      +/-   ##
==========================================
- Coverage   47.85%   47.69%   -0.17%     
==========================================
  Files         662      655       -7     
  Lines       87940    87855      -85     
==========================================
- Hits        42088    41903     -185     
- Misses      43082    43177      +95     
- Partials     2770     2775       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

gmalouf
gmalouf previously approved these changes Jan 5, 2026
Comment thread network/connPerfMon.go Outdated
jannotti
jannotti previously approved these changes Jan 7, 2026
Co-authored-by: John Jannotti <jannotti@gmail.com>
@algorandskiy algorandskiy changed the title tests: add TestConnMonitor_Simulate network: exclude TX traffic from conn performance monitoring Jan 7, 2026
@algorandskiy algorandskiy merged commit a5d7ec2 into algorand:master Jan 7, 2026
42 checks passed
@algorandskiy algorandskiy deleted the pavel/network-perf-conn-sim branch March 16, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants