RFR: 8371475: HttpClient: Implement CUBIC congestion controller [v3]

Daniel Jeliński djelinski at openjdk.org
Thu Nov 13 13:25:10 UTC 2025


On Thu, 13 Nov 2025 06:29:15 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:

>> 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
>
> src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicBaseCongestionController.java line 58:
> 
>> 56:     private static final int MAX_BYTES_IN_FLIGHT = Math.clamp(
>> 57:             Utils.getLongProperty("jdk.httpclient.quic.maxBytesInFlight", 1 << 24),
>> 58:             1 << 14, 1 << 24);
> 
> Utils#getIntegerNetProperty(String property, int min, int max, int defaultValue, boolean log)
> 
> does clamping, and supports logging on invalid input. AFAICS, `Utils::getLongProperty` was introduced with HTTP/3, yet lacks the versatility of `getIntegerNetProperty`. @dfuch, is this a room for improvement, or is it not worth the code churn?

I think we could use clamping overloads of the getXXXProperty methods. There are quite a few places where they would be useful. But let's not do that in this PR.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/28195#discussion_r2523451111


More information about the net-dev mailing list