You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by eo...@apache.org on 2021/05/21 05:02:28 UTC
[pulsar] branch master updated: Allow to configure the number of BK
client worker threads (#10649)
This is an automated email from the ASF dual-hosted git repository.
eolivelli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 16223ba Allow to configure the number of BK client worker threads (#10649)
16223ba is described below
commit 16223ba0c064bb7fbe9718e1be518adfc301025c
Author: Matteo Merli <mm...@apache.org>
AuthorDate: Thu May 20 22:01:52 2021 -0700
Allow to configure the number of BK client worker threads (#10649)
---
conf/broker.conf | 4 ++++
conf/standalone.conf | 4 ++++
.../main/java/org/apache/pulsar/broker/ServiceConfiguration.java | 7 +++++++
.../java/org/apache/pulsar/broker/BookKeeperClientFactoryImpl.java | 1 +
site2/docs/reference-configuration.md | 2 ++
5 files changed, 18 insertions(+)
diff --git a/conf/broker.conf b/conf/broker.conf
index 21008ec..7c01a76 100644
--- a/conf/broker.conf
+++ b/conf/broker.conf
@@ -715,6 +715,10 @@ bookkeeperClientAuthenticationParameters=
# Timeout for BK add / read operations
bookkeeperClientTimeoutInSeconds=30
+# Number of BookKeeper client worker threads
+# Default is Runtime.getRuntime().availableProcessors()
+bookkeeperClientNumWorkerThreads=
+
# Speculative reads are initiated if a read request doesn't complete within a certain time
# Using a value of 0, is disabling the speculative reads
bookkeeperClientSpeculativeReadTimeoutInMillis=0
diff --git a/conf/standalone.conf b/conf/standalone.conf
index 3f6292c..d696646 100644
--- a/conf/standalone.conf
+++ b/conf/standalone.conf
@@ -477,6 +477,10 @@ bookkeeperClientAuthenticationParameters=
# Timeout for BK add / read operations
bookkeeperClientTimeoutInSeconds=30
+# Number of BookKeeper client worker threads
+# Default is Runtime.getRuntime().availableProcessors()
+bookkeeperClientNumWorkerThreads=
+
# Speculative reads are initiated if a read request doesn't complete within a certain time
# Using a value of 0, is disabling the speculative reads
bookkeeperClientSpeculativeReadTimeoutInMillis=0
diff --git a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
index 844e137..37adc79 100644
--- a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
+++ b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
@@ -1322,6 +1322,13 @@ public class ServiceConfiguration implements PulsarConfiguration {
)
private int bookkeeperClientThrottleValue = 0;
+ @FieldContext(
+ category = CATEGORY_STORAGE_BK,
+ doc = "Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()"
+ )
+ private int bookkeeperClientNumWorkerThreads = Runtime.getRuntime().availableProcessors();
+
+
/**** --- Managed Ledger --- ****/
@FieldContext(
minValue = 1,
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/BookKeeperClientFactoryImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/BookKeeperClientFactoryImpl.java
index e5f0e78..9560ca3 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/BookKeeperClientFactoryImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/BookKeeperClientFactoryImpl.java
@@ -111,6 +111,7 @@ public class BookKeeperClientFactoryImpl implements BookKeeperClientFactory {
bkConf.setTLSTrustStorePasswordPath(conf.getBookkeeperTLSTrustStorePasswordPath());
}
+ bkConf.setNumWorkerThreads(conf.getBookkeeperClientNumWorkerThreads());
bkConf.setThrottleValue(conf.getBookkeeperClientThrottleValue());
bkConf.setAddEntryTimeout((int) conf.getBookkeeperClientTimeoutInSeconds());
bkConf.setReadEntryTimeout((int) conf.getBookkeeperClientTimeoutInSeconds());
diff --git a/site2/docs/reference-configuration.md b/site2/docs/reference-configuration.md
index da226ae..8705a4f 100644
--- a/site2/docs/reference-configuration.md
+++ b/site2/docs/reference-configuration.md
@@ -246,6 +246,7 @@ brokerServiceCompactionThresholdInBytes|If the estimated backlog size is greater
|bookkeeperClientAuthenticationPlugin| Authentication plugin to use when connecting to bookies ||
|bookkeeperClientAuthenticationParametersName| BookKeeper auth plugin implementatation specifics parameters name and values ||
|bookkeeperClientAuthenticationParameters|||
+|bookkeeperClientNumWorkerThreads| Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors() ||
|bookkeeperClientTimeoutInSeconds| Timeout for BK add / read operations |30|
|bookkeeperClientSpeculativeReadTimeoutInMillis| Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads |0|
|bookkeeperNumberOfChannelsPerBookie| Number of channels per bookie |16|
@@ -566,6 +567,7 @@ You can set the log level and configuration in the [log4j2.yaml](https://github
|bookkeeperClientAuthenticationPlugin| Authentication plugin to be used when connecting to bookies (BookKeeper servers). ||
|bookkeeperClientAuthenticationParametersName| BookKeeper authentication plugin implementation parameters and values. ||
|bookkeeperClientAuthenticationParameters| Parameters associated with the bookkeeperClientAuthenticationParametersName ||
+|bookkeeperClientNumWorkerThreads| Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors() ||
|bookkeeperClientTimeoutInSeconds| Timeout for BookKeeper add and read operations. |30|
|bookkeeperClientSpeculativeReadTimeoutInMillis| Speculative reads are initiated if a read request doesn’t complete within a certain time. A value of 0 disables speculative reads. |0|
|bookkeeperUseV2WireProtocol|Use older Bookkeeper wire protocol with bookie.|true|