From 58cedbbdcd309390e0cc11ebc73e14c325d2c82e Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Thu, 9 Oct 2025 14:05:39 +0200 Subject: [PATCH] Reenable HTTP/2 for internal communication Lower number of TCP/IP connections for HTTP/2 --- .../src/main/java/io/trino/server/CoordinatorModule.java | 8 +++++++- .../java/io/trino/server/InternalCommunicationConfig.java | 2 +- .../io/trino/server/TestInternalCommunicationConfig.java | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/core/trino-main/src/main/java/io/trino/server/CoordinatorModule.java b/core/trino-main/src/main/java/io/trino/server/CoordinatorModule.java index adee6e2e7f2b..3fd43bbc350c 100644 --- a/core/trino-main/src/main/java/io/trino/server/CoordinatorModule.java +++ b/core/trino-main/src/main/java/io/trino/server/CoordinatorModule.java @@ -357,11 +357,17 @@ List getCompositeOutputDataSizeEstimatorDelegateFac binder.bind(RemoteTaskStats.class).in(Scopes.SINGLETON); newExporter(binder).export(RemoteTaskStats.class).withGeneratedName(); + InternalCommunicationConfig internalCommunicationConfig = buildConfigObject(InternalCommunicationConfig.class); install(internalHttpClientModule("scheduler", ForScheduler.class) .withConfigDefaults(config -> { config.setIdleTimeout(new Duration(60, SECONDS)); config.setRequestTimeout(new Duration(20, SECONDS)); - config.setMaxConnectionsPerServer(250); + if (internalCommunicationConfig.isHttp2Enabled()) { + config.setMaxConnectionsPerServer(64); + } + else { + config.setMaxConnectionsPerServer(250); + } }).build()); binder.bind(ScheduledExecutorService.class).annotatedWith(ForScheduler.class) diff --git a/core/trino-main/src/main/java/io/trino/server/InternalCommunicationConfig.java b/core/trino-main/src/main/java/io/trino/server/InternalCommunicationConfig.java index e067caedceb6..2ab09bf69859 100644 --- a/core/trino-main/src/main/java/io/trino/server/InternalCommunicationConfig.java +++ b/core/trino-main/src/main/java/io/trino/server/InternalCommunicationConfig.java @@ -31,7 +31,7 @@ public class InternalCommunicationConfig { private String sharedSecret; - private boolean http2Enabled; + private boolean http2Enabled = true; private boolean httpsRequired; private String keyStorePath; private String keyStorePassword; diff --git a/core/trino-main/src/test/java/io/trino/server/TestInternalCommunicationConfig.java b/core/trino-main/src/test/java/io/trino/server/TestInternalCommunicationConfig.java index 801e8307eba6..174318a955fb 100644 --- a/core/trino-main/src/test/java/io/trino/server/TestInternalCommunicationConfig.java +++ b/core/trino-main/src/test/java/io/trino/server/TestInternalCommunicationConfig.java @@ -32,7 +32,7 @@ public void testDefaults() { assertRecordedDefaults(recordDefaults(InternalCommunicationConfig.class) .setSharedSecret(null) - .setHttp2Enabled(false) + .setHttp2Enabled(true) .setHttpsRequired(false) .setKeyStorePath(null) .setKeyStorePassword(null) @@ -50,7 +50,7 @@ public void testExplicitPropertyMappings() Map properties = ImmutableMap.builder() .put("internal-communication.shared-secret", "secret") - .put("internal-communication.http2.enabled", "true") + .put("internal-communication.http2.enabled", "false") .put("internal-communication.https.required", "true") .put("internal-communication.https.keystore.path", keystoreFile.toString()) .put("internal-communication.https.keystore.key", "key-key") @@ -61,7 +61,7 @@ public void testExplicitPropertyMappings() InternalCommunicationConfig expected = new InternalCommunicationConfig() .setSharedSecret("secret") - .setHttp2Enabled(true) + .setHttp2Enabled(false) .setHttpsRequired(true) .setKeyStorePath(keystoreFile.toString()) .setKeyStorePassword("key-key")