neqo icon indicating copy to clipboard operation
neqo copied to clipboard

Mark WebTransport streams keep alive

Open MayyaSunil opened this issue 2 years ago • 8 comments

This PR is intended to resolve #1369

MayyaSunil avatar Dec 01 '22 11:12 MayyaSunil

@MayyaSunil are you still intending to land this change?

larseggert avatar Feb 07 '24 07:02 larseggert

@larseggert, thanks for checking. I would like to land this. If you/anyone is planning to submit a patch for the bug, please feel free to do so, as I won't be able to work on this until my current assignments are completed (by the end of March)

MayyaSunil avatar Feb 07 '24 12:02 MayyaSunil

@MayyaSunil any update on when you might get to this?

larseggert avatar Apr 09 '24 11:04 larseggert

@MayyaSunil any update on when you might get to this?

I will resume this early next week and hope to complete by the end of the week

MayyaSunil avatar Apr 11 '24 08:04 MayyaSunil

OK. Making this a draft PR until it's ready for review, please change it back then.

larseggert avatar Apr 15 '24 05:04 larseggert

Benchmark results

Performance differences relative to 24636187886471c2d3f71235f751ebefeb2a7e7a.

  • drain a timer quickly time: [311.82 ns 319.15 ns 325.94 ns] change: [-29.772% -28.465% -27.032%] (p = 0.00 < 0.05) :green_heart: Performance has improved.

  • coalesce_acked_from_zero 1+1 entries time: [202.76 ns 203.28 ns 203.81 ns] change: [+2.4616% +2.8914% +3.3435%] (p = 0.00 < 0.05) :broken_heart: Performance has regressed.

  • coalesce_acked_from_zero 3+1 entries time: [248.40 ns 248.99 ns 249.61 ns] change: [+3.3741% +3.7299% +4.0540%] (p = 0.00 < 0.05) :broken_heart: Performance has regressed.

  • coalesce_acked_from_zero 10+1 entries time: [247.08 ns 247.76 ns 248.59 ns] change: [+3.0582% +3.6074% +4.1948%] (p = 0.00 < 0.05) :broken_heart: Performance has regressed.

  • coalesce_acked_from_zero 1000+1 entries time: [226.01 ns 226.33 ns 226.76 ns] change: [-20.439% -6.8145% +3.0254%] (p = 0.56 > 0.05) No change in performance detected.

  • RxStreamOrderer::inbound_frame() time: [119.26 ms 119.33 ms 119.40 ms] change: [+0.0014% +0.2059% +0.3459%] (p = 0.01 < 0.05) Change within noise threshold.

  • transfer/Run multiple transfers with varying seeds time: [120.41 ms 120.73 ms 121.04 ms] thrpt: [33.048 MiB/s 33.132 MiB/s 33.219 MiB/s] change: time: [+0.6807% +1.0546% +1.4080%] (p = 0.00 < 0.05) thrpt: [-1.3885% -1.0435% -0.6761%] Change within noise threshold.

  • transfer/Run multiple transfers with the same seed time: [120.79 ms 120.99 ms 121.21 ms] thrpt: [33.000 MiB/s 33.061 MiB/s 33.117 MiB/s] change: time: [-0.0877% +0.1479% +0.4062%] (p = 0.25 > 0.05) thrpt: [-0.4045% -0.1477% +0.0877%] No change in performance detected.

  • 1-conn/1-100mb-resp (aka. Download)/client time: [1.1127 s 1.1202 s 1.1281 s] thrpt: [88.646 MiB/s 89.272 MiB/s 89.875 MiB/s] change: time: [-3.4496% -2.1281% -0.9430%] (p = 0.00 < 0.05) thrpt: [+0.9520% +2.1743% +3.5729%] Change within noise threshold.

  • 1-conn/10_000-parallel-1b-resp (aka. RPS)/client time: [429.92 ms 432.15 ms 434.43 ms] thrpt: [23.019 Kelem/s 23.140 Kelem/s 23.260 Kelem/s] change: time: [-0.3675% +0.3151% +1.0375%] (p = 0.39 > 0.05) thrpt: [-1.0269% -0.3141% +0.3689%] No change in performance detected.

  • 1-conn/1-1b-resp (aka. HPS)/client time: [50.554 ms 50.876 ms 51.220 ms] thrpt: [19.524 elem/s 19.656 elem/s 19.781 elem/s] change: time: [-0.7285% +0.2310% +1.2101%] (p = 0.64 > 0.05) thrpt: [-1.1956% -0.2305% +0.7339%] No change in performance detected.

Client/server transfer results

Transfer of 134217728 bytes over loopback.

Client Server CC Pacing Mean [ms] Min [ms] Max [ms] Relative
msquic msquic 644.6 ± 254.5 398.7 1254.7 1.00
neqo msquic reno on 1065.4 ± 240.3 762.4 1414.0 1.00
neqo msquic reno 994.7 ± 274.8 763.2 1539.2 1.00
neqo msquic cubic on 954.2 ± 234.3 784.7 1390.4 1.00
neqo msquic cubic 923.7 ± 252.5 754.8 1435.4 1.00
msquic neqo reno on 4495.0 ± 233.5 4243.6 4915.4 1.00
msquic neqo reno 4454.3 ± 226.4 4104.9 4931.4 1.00
msquic neqo cubic on 4481.1 ± 182.1 4220.8 4763.1 1.00
msquic neqo cubic 4401.3 ± 194.7 4131.6 4626.2 1.00
neqo neqo reno on 4185.6 ± 320.6 3906.2 4849.4 1.00
neqo neqo reno 3737.2 ± 343.4 3379.3 4470.1 1.00
neqo neqo cubic on 4426.0 ± 215.8 4085.8 4849.5 1.00
neqo neqo cubic 4381.3 ± 183.8 4108.5 4703.5 1.00

:arrow_down: Download logs

github-actions[bot] avatar Apr 17 '24 23:04 github-actions[bot]

@MayyaSunil is this good to go functionality-wise? Does it still need a test?

larseggert avatar Apr 19 '24 12:04 larseggert

@larseggert Its not okay functionality wise and needs a test

MayyaSunil avatar Apr 19 '24 12:04 MayyaSunil