This is an automated email from the ASF dual-hosted git repository.
abhishek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 0ab2781a7f2 Disable eager initialization for non-query connection
requests (#15751)
0ab2781a7f2 is described below
commit 0ab2781a7f2a861e5fc34ab708505fda692f7eae
Author: Abhishek Agarwal <[email protected]>
AuthorDate: Thu Jan 25 14:38:50 2024 +0530
Disable eager initialization for non-query connection requests (#15751)
---
docs/configuration/index.md | 2 +-
.../conf/druid/auto/_common/common.runtime.properties | 5 -----
.../conf/druid/cluster/_common/common.runtime.properties | 5 -----
.../large/_common/common.runtime.properties | 4 ----
.../medium/_common/common.runtime.properties | 4 ----
.../micro-quickstart/_common/common.runtime.properties | 4 ----
.../nano-quickstart/_common/common.runtime.properties | 4 ----
.../small/_common/common.runtime.properties | 4 ----
.../xlarge/_common/common.runtime.properties | 4 ----
.../org/apache/druid/testsEx/config/Initializer.java | 4 ++--
.../apache/druid/guice/http/DruidHttpClientConfig.java | 7 +++++--
.../org/apache/druid/guice/http/HttpClientModule.java | 16 ++++++++++------
.../apache/druid/initialization/CoreInjectorBuilder.java | 4 ++--
13 files changed, 20 insertions(+), 47 deletions(-)
diff --git a/docs/configuration/index.md b/docs/configuration/index.md
index d2994e8634b..2e4d1f99722 100644
--- a/docs/configuration/index.md
+++ b/docs/configuration/index.md
@@ -820,7 +820,7 @@ All Druid components can communicate with each other over
HTTP.
|Property|Description|Default|
|--------|-----------|-------|
|`druid.global.http.numConnections`|Size of connection pool per destination
URL. If there are more HTTP requests than this number that all need to speak to
the same URL, then they will queue up.|`20`|
-|`druid.global.http.eagerInitialization`|Indicates that http connections
should be eagerly initialized. If set to true, `numConnections` connections are
created upon initialization|`true`|
+|`druid.global.http.eagerInitialization`|Indicates that http connections
should be eagerly initialized. If set to true, `numConnections` connections are
created upon initialization|`false`|
|`druid.global.http.compressionCodec`|Compression codec to communicate with
others. May be "gzip" or "identity".|`gzip`|
|`druid.global.http.readTimeout`|The timeout for data reads.|`PT15M`|
|`druid.global.http.unusedConnectionTimeout`|The timeout for idle connections
in connection pool. The connection in the pool will be closed after this
timeout and a new one will be established. This timeout should be less than
`druid.global.http.readTimeout`. Set this timeout = ~90% of
`druid.global.http.readTimeout`|`PT4M`|
diff --git a/examples/conf/druid/auto/_common/common.runtime.properties
b/examples/conf/druid/auto/_common/common.runtime.properties
index 4f4884d5264..8a9058f6b8c 100644
--- a/examples/conf/druid/auto/_common/common.runtime.properties
+++ b/examples/conf/druid/auto/_common/common.runtime.properties
@@ -151,8 +151,3 @@ druid.lookup.enableLookupSyncOnStartup=false
# Expression processing config
#
druid.expressions.useStrictBooleans=true
-
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git a/examples/conf/druid/cluster/_common/common.runtime.properties
b/examples/conf/druid/cluster/_common/common.runtime.properties
index 4f4884d5264..8a9058f6b8c 100644
--- a/examples/conf/druid/cluster/_common/common.runtime.properties
+++ b/examples/conf/druid/cluster/_common/common.runtime.properties
@@ -151,8 +151,3 @@ druid.lookup.enableLookupSyncOnStartup=false
# Expression processing config
#
druid.expressions.useStrictBooleans=true
-
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/examples/conf/druid/single-server/large/_common/common.runtime.properties
b/examples/conf/druid/single-server/large/_common/common.runtime.properties
index 4f4884d5264..dcb1687ca70 100644
--- a/examples/conf/druid/single-server/large/_common/common.runtime.properties
+++ b/examples/conf/druid/single-server/large/_common/common.runtime.properties
@@ -152,7 +152,3 @@ druid.lookup.enableLookupSyncOnStartup=false
#
druid.expressions.useStrictBooleans=true
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/examples/conf/druid/single-server/medium/_common/common.runtime.properties
b/examples/conf/druid/single-server/medium/_common/common.runtime.properties
index 4f4884d5264..dcb1687ca70 100644
--- a/examples/conf/druid/single-server/medium/_common/common.runtime.properties
+++ b/examples/conf/druid/single-server/medium/_common/common.runtime.properties
@@ -152,7 +152,3 @@ druid.lookup.enableLookupSyncOnStartup=false
#
druid.expressions.useStrictBooleans=true
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/examples/conf/druid/single-server/micro-quickstart/_common/common.runtime.properties
b/examples/conf/druid/single-server/micro-quickstart/_common/common.runtime.properties
index 4f4884d5264..dcb1687ca70 100644
---
a/examples/conf/druid/single-server/micro-quickstart/_common/common.runtime.properties
+++
b/examples/conf/druid/single-server/micro-quickstart/_common/common.runtime.properties
@@ -152,7 +152,3 @@ druid.lookup.enableLookupSyncOnStartup=false
#
druid.expressions.useStrictBooleans=true
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/examples/conf/druid/single-server/nano-quickstart/_common/common.runtime.properties
b/examples/conf/druid/single-server/nano-quickstart/_common/common.runtime.properties
index 4f4884d5264..dcb1687ca70 100644
---
a/examples/conf/druid/single-server/nano-quickstart/_common/common.runtime.properties
+++
b/examples/conf/druid/single-server/nano-quickstart/_common/common.runtime.properties
@@ -152,7 +152,3 @@ druid.lookup.enableLookupSyncOnStartup=false
#
druid.expressions.useStrictBooleans=true
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/examples/conf/druid/single-server/small/_common/common.runtime.properties
b/examples/conf/druid/single-server/small/_common/common.runtime.properties
index 4f4884d5264..dcb1687ca70 100644
--- a/examples/conf/druid/single-server/small/_common/common.runtime.properties
+++ b/examples/conf/druid/single-server/small/_common/common.runtime.properties
@@ -152,7 +152,3 @@ druid.lookup.enableLookupSyncOnStartup=false
#
druid.expressions.useStrictBooleans=true
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/examples/conf/druid/single-server/xlarge/_common/common.runtime.properties
b/examples/conf/druid/single-server/xlarge/_common/common.runtime.properties
index 4f4884d5264..dcb1687ca70 100644
--- a/examples/conf/druid/single-server/xlarge/_common/common.runtime.properties
+++ b/examples/conf/druid/single-server/xlarge/_common/common.runtime.properties
@@ -152,7 +152,3 @@ druid.lookup.enableLookupSyncOnStartup=false
#
druid.expressions.useStrictBooleans=true
-#
-# Http client
-#
-druid.global.http.eagerInitialization=false
diff --git
a/integration-tests-ex/cases/src/test/java/org/apache/druid/testsEx/config/Initializer.java
b/integration-tests-ex/cases/src/test/java/org/apache/druid/testsEx/config/Initializer.java
index 7931115c6eb..ac3f8415488 100644
---
a/integration-tests-ex/cases/src/test/java/org/apache/druid/testsEx/config/Initializer.java
+++
b/integration-tests-ex/cases/src/test/java/org/apache/druid/testsEx/config/Initializer.java
@@ -489,8 +489,8 @@ public class Initializer
new EscalatorModule(),
HttpClientModule.global(),
HttpClientModule.escalatedGlobal(),
- new HttpClientModule("druid.broker.http", Client.class),
- new HttpClientModule("druid.broker.http", EscalatedClient.class),
+ new HttpClientModule("druid.broker.http", Client.class, true),
+ new HttpClientModule("druid.broker.http", EscalatedClient.class,
true),
// For ZK discovery
new CuratorModule(),
new AnnouncerModule(),
diff --git
a/server/src/main/java/org/apache/druid/guice/http/DruidHttpClientConfig.java
b/server/src/main/java/org/apache/druid/guice/http/DruidHttpClientConfig.java
index d8e9db13853..70ed44f2eb8 100644
---
a/server/src/main/java/org/apache/druid/guice/http/DruidHttpClientConfig.java
+++
b/server/src/main/java/org/apache/druid/guice/http/DruidHttpClientConfig.java
@@ -70,7 +70,7 @@ public class DruidHttpClientConfig
private HumanReadableBytes maxQueuedBytes = computeDefaultMaxQueuedBytes();
@JsonProperty
- private boolean eagerInitialization = true;
+ private Boolean eagerInitialization = null;
public int getNumConnections()
{
@@ -121,8 +121,11 @@ public class DruidHttpClientConfig
return maxQueuedBytes.getBytes();
}
- public boolean isEagerInitialization()
+ public boolean isEagerInitialization(boolean defaultValue)
{
+ if (null == eagerInitialization) {
+ return defaultValue;
+ }
return eagerInitialization;
}
diff --git
a/server/src/main/java/org/apache/druid/guice/http/HttpClientModule.java
b/server/src/main/java/org/apache/druid/guice/http/HttpClientModule.java
index d4753241e2a..2aaf30a469f 100644
--- a/server/src/main/java/org/apache/druid/guice/http/HttpClientModule.java
+++ b/server/src/main/java/org/apache/druid/guice/http/HttpClientModule.java
@@ -47,12 +47,12 @@ public class HttpClientModule implements Module
{
public static HttpClientModule global()
{
- return new HttpClientModule("druid.global.http", Global.class);
+ return new HttpClientModule("druid.global.http", Global.class, false);
}
public static HttpClientModule escalatedGlobal()
{
- return new HttpClientModule("druid.global.http", EscalatedGlobal.class);
+ return new HttpClientModule("druid.global.http", EscalatedGlobal.class,
false);
}
private static final Set<Class<? extends Annotation>> ESCALATING_ANNOTATIONS
=
@@ -61,11 +61,13 @@ public class HttpClientModule implements Module
private final String propertyPrefix;
private final Class<? extends Annotation> annotationClazz;
private final boolean isEscalated;
+ private final boolean eagerByDefault;
- public HttpClientModule(String propertyPrefix, Class<? extends Annotation>
annotationClazz)
+ public HttpClientModule(String propertyPrefix, Class<? extends Annotation>
annotationClazz, boolean eagerByDefault)
{
this.propertyPrefix = Preconditions.checkNotNull(propertyPrefix,
"propertyPrefix");
this.annotationClazz = Preconditions.checkNotNull(annotationClazz,
"annotationClazz");
+ this.eagerByDefault = eagerByDefault;
isEscalated = ESCALATING_ANNOTATIONS.contains(this.annotationClazz);
}
@@ -76,19 +78,21 @@ public class HttpClientModule implements Module
JsonConfigProvider.bind(binder, propertyPrefix,
DruidHttpClientConfig.class, annotationClazz);
binder.bind(HttpClient.class)
.annotatedWith(annotationClazz)
- .toProvider(new HttpClientProvider(annotationClazz, isEscalated))
+ .toProvider(new HttpClientProvider(annotationClazz, isEscalated,
eagerByDefault))
.in(LazySingleton.class);
}
public static class HttpClientProvider extends
AbstractHttpClientProvider<HttpClient>
{
private final boolean isEscalated;
+ private final boolean eagerByDefault;
private Escalator escalator;
- public HttpClientProvider(Class<? extends Annotation> annotationClazz,
boolean isEscalated)
+ public HttpClientProvider(Class<? extends Annotation> annotationClazz,
boolean isEscalated, boolean eagerByDefault)
{
super(annotationClazz);
this.isEscalated = isEscalated;
+ this.eagerByDefault = eagerByDefault;
}
@Inject
@@ -105,7 +109,7 @@ public class HttpClientModule implements Module
final HttpClientConfig.Builder builder = HttpClientConfig
.builder()
.withNumConnections(config.getNumConnections())
- .withEagerInitialization(config.isEagerInitialization())
+
.withEagerInitialization(config.isEagerInitialization(eagerByDefault))
.withReadTimeout(config.getReadTimeout())
.withWorkerCount(config.getNumMaxThreads())
.withCompressionCodec(
diff --git
a/server/src/main/java/org/apache/druid/initialization/CoreInjectorBuilder.java
b/server/src/main/java/org/apache/druid/initialization/CoreInjectorBuilder.java
index d27fdf75b1e..59516f8d4c4 100644
---
a/server/src/main/java/org/apache/druid/initialization/CoreInjectorBuilder.java
+++
b/server/src/main/java/org/apache/druid/initialization/CoreInjectorBuilder.java
@@ -104,8 +104,8 @@ public class CoreInjectorBuilder extends
DruidInjectorBuilder
EmitterModule.class,
HttpClientModule.global(),
HttpClientModule.escalatedGlobal(),
- new HttpClientModule("druid.broker.http", Client.class),
- new HttpClientModule("druid.broker.http", EscalatedClient.class),
+ new HttpClientModule("druid.broker.http", Client.class, true),
+ new HttpClientModule("druid.broker.http", EscalatedClient.class, true),
new CuratorModule(),
new AnnouncerModule(),
new MetricsModule(),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]