mozilla / neqo

Neqo, the Mozilla Firefox implementation of QUIC in Rust
https://firefox-source-docs.mozilla.org/networking/http/http3.html
Apache License 2.0
1.83k stars 123 forks source link

chore: prepare v0.9.0 release #2082

Closed mxinden closed 4 weeks ago

mxinden commented 1 month ago

I would like to bring https://github.com/mozilla/neqo/pull/2072/ to mozilla-central to be used in phabricator#D220062 to enable Fast UDP for Firefox - milestone 2 - ECN support.

Let's wait for https://github.com/mozilla/neqo/pull/2081 to merge first though.

Anything else? Any objections?

As always, given that cutting a Neqo release and landing it in mozilla-central is easy, I suggest blocking Neqo releases on bug fixes only.

github-actions[bot] commented 1 month ago

Failed Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.36%. Comparing base (a793d4a) to head (fb85511). Report is 10 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #2082 +/- ## ======================================= Coverage 95.36% 95.36% ======================================= Files 112 112 Lines 36505 36530 +25 ======================================= + Hits 34813 34837 +24 - Misses 1692 1693 +1 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 1 month ago

Benchmark results

Performance differences relative to 6f8823bdc1e5e57e982329cb3d5758a3ff0ea448.

coalesce_acked_from_zero 1+1 entries: :broken_heart: Performance has regressed.
       time:   [99.768 ns 100.02 ns 100.28 ns]
       change: [+1.2109% +2.0523% +3.3251%] (p = 0.00 < 0.05)

Found 10 outliers among 100 measurements (10.00%)
  5 (5.00%) high mild
  5 (5.00%) high severe
coalesce_acked_from_zero 3+1 entries: Change within noise threshold.
       time:   [117.57 ns 117.88 ns 118.22 ns]
       change: [+0.1158% +0.5003% +0.8455%] (p = 0.01 < 0.05)

Found 12 outliers among 100 measurements (12.00%)
  4 (4.00%) low mild
  1 (1.00%) high mild
  7 (7.00%) high severe
coalesce_acked_from_zero 10+1 entries: Change within noise threshold.
       time:   [117.39 ns 117.71 ns 118.13 ns]
       change: [+0.5723% +1.0867% +1.6615%] (p = 0.00 < 0.05)

Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  1 (1.00%) high mild
  6 (6.00%) high severe
coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [97.470 ns 97.719 ns 98.078 ns]
       change: [-0.9709% +0.3020% +1.5586%] (p = 0.67 > 0.05)

Found 8 outliers among 100 measurements (8.00%)
  5 (5.00%) high mild
  3 (3.00%) high severe
RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [111.79 ms 111.84 ms 111.89 ms]
       change: [+0.2269% +0.2918% +0.3592%] (p = 0.00 < 0.05)

Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) low mild
transfer/pacing-false/varying-seeds: No change in performance detected.
       time:   [26.726 ms 27.711 ms 28.713 ms]
       change: [-2.4264% +3.0112% +8.3027%] (p = 0.26 > 0.05)
transfer/pacing-true/varying-seeds: No change in performance detected.
       time:   [36.749 ms 38.326 ms 39.930 ms]
       change: [-2.2679% +3.9296% +10.833%] (p = 0.23 > 0.05)

Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
transfer/pacing-false/same-seed: No change in performance detected.
       time:   [31.992 ms 32.712 ms 33.401 ms]
       change: [-4.7273% -1.9137% +0.9141%] (p = 0.19 > 0.05)

Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild
transfer/pacing-true/same-seed: No change in performance detected.
       time:   [41.320 ms 44.184 ms 47.036 ms]
       change: [-14.959% -6.8730% +1.1964%] (p = 0.12 > 0.05)
1-conn/1-100mb-resp (aka. Download)/client: Change within noise threshold.
       time:   [113.91 ms 114.20 ms 114.48 ms]
       thrpt:  [873.54 MiB/s 875.67 MiB/s 877.89 MiB/s]
change:
       time:   [-1.2071% -0.7687% -0.3058%] (p = 0.00 < 0.05)
       thrpt:  [+0.3068% +0.7746% +1.2218%]

Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) low mild
1-conn/10_000-parallel-1b-resp (aka. RPS)/client: No change in performance detected.
       time:   [315.84 ms 319.64 ms 323.35 ms]
       thrpt:  [30.926 Kelem/s 31.285 Kelem/s 31.661 Kelem/s]
change:
       time:   [-0.6559% +1.0770% +2.8009%] (p = 0.22 > 0.05)
       thrpt:  [-2.7246% -1.0655% +0.6603%]
1-conn/1-1b-resp (aka. HPS)/client: :green_heart: Performance has improved.
       time:   [32.520 ms 32.671 ms 32.832 ms]
       thrpt:  [30.458  elem/s 30.608  elem/s 30.751  elem/s]
change:
       time:   [-21.052% -19.662% -18.201%] (p = 0.00 < 0.05)
       thrpt:  [+22.251% +24.475% +26.666%]

Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  1 (1.00%) high severe

Client/server transfer results

Transfer of 33554432 bytes over loopback. Client Server CC Pacing Mean [ms] Min [ms] Max [ms] Relative
msquic msquic 139.6 ± 94.9 85.1 416.3 1.00
neqo msquic reno on 277.9 ± 84.7 218.4 437.0 1.00
neqo msquic reno 232.8 ± 26.9 202.1 306.7 1.00
neqo msquic cubic on 216.2 ± 13.1 202.1 235.7 1.00
neqo msquic cubic 243.7 ± 71.4 207.6 469.0 1.00
msquic neqo reno on 119.9 ± 90.0 74.6 345.4 1.00
msquic neqo reno 129.4 ± 98.4 74.5 391.7 1.00
msquic neqo cubic on 103.7 ± 60.4 74.8 319.4 1.00
msquic neqo cubic 103.0 ± 58.4 74.2 324.9 1.00
neqo neqo reno on 247.2 ± 115.3 132.2 417.3 1.00
neqo neqo reno 199.4 ± 109.5 122.7 502.7 1.00
neqo neqo cubic on 167.1 ± 50.6 122.8 332.7 1.00
neqo neqo cubic 175.3 ± 75.1 126.0 427.0 1.00

:arrow_down: Download logs

github-actions[bot] commented 1 month ago

Firefox builds for this PR

The following builds are available for testing. Crossed-out builds did not succeed.

larseggert commented 1 month ago

I keep hoping that Marten merges my QNS patch, so I can finally fix the 0-RTT PR and merge it. I will switch CI to my own QNS docker image next week if that still hasn't happened. I'd be nice if those fixes made it into a release soon, too.

mxinden commented 4 weeks ago

I keep hoping that Marten merges my QNS patch, so I can finally fix the 0-RTT PR and merge it. I will switch CI to my own QNS docker image next week if that still hasn't happened. I'd be nice if those fixes made it into a release soon, too.

:+1: happy to cut another release, once this is ready.

mxinden commented 3 weeks ago

For the record, mozilla-central now uses neqo v0.9.0. See https://bugzilla.mozilla.org/show_bug.cgi?id=1916645.