On Wed, 12 Nov 2025 15:13:18 GMT, Daniel Jeliński <[email protected]> wrote:
>>> CUBIC is a standard TCP congestion control algorithm that uses a cubic >>> function instead of a linear congestion window increase function to improve >>> scalability and stability over fast and long-distance networks. CUBIC has >>> been adopted as the default TCP congestion control algorithm by the Linux, >>> Windows, and Apple stacks. >> >> This PR adds a new congestion controller algorithm. It reuses a large part >> of the QuicRenoCongestionController, which was refactored to two classes - >> QuicBaseCongestionController, containing the shared code, and >> QuicRenoCongestionController, containing only the code that is unique to >> Reno. >> >> CUBIC is now the default congestion controller. Reno can still be selected >> by setting the system property `jdk.httpclient.quic.congestionController` to >> `reno`. >> >> A new test was added to exercise the new congestion controller. Existing >> tests continue to pass. > > Daniel Jeliński has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 24 commits: > > - Update test comments > - Convert CubicTest to JUnit > - Merge declaration and assignment > - More aggressive target growth > - Merge remote-tracking branch 'origin/master' into quic-cubic > - Make classes final > - Rename system property to internal > - Add a system property to select congestion controller > - Implement fast convergence > - Add comments > - ... and 14 more: https://git.openjdk.org/jdk/compare/1f1f7bb4...195b0f89 Thanks @AlanBateman @vy for the reviews. The property was not meant to be exposed; IMO CUBIC is superior to Reno in all aspects that matter. I renamed it to include `internal`. We will probably need to revisit the configuration if and when we implement BBR, but we aren't quite there yet. ------------- PR Review: https://git.openjdk.org/jdk/pull/28195#pullrequestreview-3453025390
