Skip to content

v3.1: streamer: set fixed RX window for all connections (backport of #9143)#9330

Merged
alexpyattaev merged 2 commits intov3.1from
mergify/bp/v3.1/pr-9143
Dec 3, 2025
Merged

v3.1: streamer: set fixed RX window for all connections (backport of #9143)#9330
alexpyattaev merged 2 commits intov3.1from
mergify/bp/v3.1/pr-9143

Conversation

@mergify
Copy link

@mergify mergify bot commented Nov 29, 2025

Problem

  • Streamer RX window management logic is unnecessarily complex
  • We control MAX_DATA and MAX_STREAMS independently even though controlling one of them is sufficient
  • Since most our logic related to streamer operates in streams, setting RX window in bytes is adding unnecessary complications to convert from streams to bytes

Summary of Changes

  • Allow for 8MB MAX_DATA for all connections (enough to reach 200Mbps over 320ms RTT, reasonable connections will never be limited by this)
  • Ensure the SWQOS efficiently throttles connections based on MAX_STREAMS setting

This is an automatic backport of pull request #9143 done by [Mergify](https://mergify.com).

@mergify mergify bot added the conflicts label Nov 29, 2025
@mergify mergify bot requested a review from a team as a code owner November 29, 2025 12:29
@mergify
Copy link
Author

mergify bot commented Nov 29, 2025

Cherry-pick of a155621 has failed:

On branch mergify/bp/v3.1/pr-9143
Your branch is up to date with 'origin/v3.1'.

You are currently cherry-picking commit a1556213d.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   streamer/src/nonblocking/quic.rs
	modified:   streamer/src/quic.rs

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   streamer/src/nonblocking/simple_qos.rs
	both modified:   streamer/src/nonblocking/swqos.rs
	both modified:   streamer/src/streamer.rs

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@t-nelson
Copy link

t-nelson commented Dec 3, 2025

are we planning to fix the merge conflicts?

(cherry picked from commit a155621)

# Conflicts:
#	streamer/src/nonblocking/simple_qos.rs
#	streamer/src/nonblocking/swqos.rs
#	streamer/src/streamer.rs
@alexpyattaev alexpyattaev force-pushed the mergify/bp/v3.1/pr-9143 branch from f0e09d4 to 47762e8 Compare December 3, 2025 09:04
@alexpyattaev
Copy link

are we planning to fix the merge conflicts?

Done, also rebased to target 3.1.4

@alexpyattaev
Copy link

A bit of context for the purpose of this backport:

  • this addresses some conditions where a legitimate sender with many large TXs could get throttled by MAX_DATA on a connection earlier than it could use up its stream limit (because those limits were computed somewhat differently)
  • we intend to backport some adjustments to the MAX_STREAMS management in streamer as a follow-up to this one.

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 97.05882% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 83.2%. Comparing base (0843de8) to head (47762e8).

Additional details and impacted files
@@            Coverage Diff            @@
##             v3.1    #9330     +/-   ##
=========================================
- Coverage    83.2%    83.2%   -0.1%     
=========================================
  Files         865      865             
  Lines      375981   375907     -74     
=========================================
- Hits       313027   312940     -87     
- Misses      62954    62967     +13     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@alexpyattaev alexpyattaev merged commit 120b21c into v3.1 Dec 3, 2025
44 checks passed
@alexpyattaev alexpyattaev deleted the mergify/bp/v3.1/pr-9143 branch December 3, 2025 20:33
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.

4 participants