You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ma...@apache.org on 2023/04/21 01:40:04 UTC

[pulsar] branch master updated: [improve][broker] Support disabling delayed bucket merging. (#20155)

This is an automated email from the ASF dual-hosted git repository.

mattisonchao 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 e1a3fa8f6d9 [improve][broker] Support disabling delayed bucket merging. (#20155)
e1a3fa8f6d9 is described below

commit e1a3fa8f6d9e3cb4e4357ee40263f55e1c1491b8
Author: Qiang Zhao <ma...@apache.org>
AuthorDate: Fri Apr 21 09:39:57 2023 +0800

    [improve][broker] Support disabling delayed bucket merging. (#20155)
---
 conf/broker.conf                                                     | 3 ++-
 conf/standalone.conf                                                 | 3 ++-
 .../src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java | 5 +++--
 .../pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java   | 2 +-
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/conf/broker.conf b/conf/broker.conf
index 292b1ef1683..89d2d852004 100644
--- a/conf/broker.conf
+++ b/conf/broker.conf
@@ -577,7 +577,8 @@ delayedDeliveryMaxIndexesPerBucketSnapshotSegment=5000
 
 # The max number of delayed message index bucket,
 # after reaching the max buckets limitation, the adjacent buckets will be merged.
-delayedDeliveryMaxNumBuckets=50
+# (disable with value -1)
+delayedDeliveryMaxNumBuckets=-1
 
 # Size of the lookahead window to use when detecting if all the messages in the topic
 # have a fixed delay.
diff --git a/conf/standalone.conf b/conf/standalone.conf
index f141946c29f..63bc7a29ae6 100644
--- a/conf/standalone.conf
+++ b/conf/standalone.conf
@@ -1264,4 +1264,5 @@ delayedDeliveryMaxIndexesPerBucketSnapshotSegment=5000
 
 # The max number of delayed message index bucket,
 # after reaching the max buckets limitation, the adjacent buckets will be merged.
-delayedDeliveryMaxNumBuckets=50
+# (disable with value -1)
+delayedDeliveryMaxNumBuckets=-1
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 b31c86560f8..2c48310f964 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
@@ -372,8 +372,9 @@ public class ServiceConfiguration implements PulsarConfiguration {
 
     @FieldContext(category = CATEGORY_SERVER, doc = """
             The max number of delayed message index bucket, \
-            after reaching the max buckets limitation, the adjacent buckets will be merged.""")
-    private int delayedDeliveryMaxNumBuckets = 50;
+            after reaching the max buckets limitation, the adjacent buckets will be merged.\
+            (disable with value -1)""")
+    private int delayedDeliveryMaxNumBuckets = -1;
 
     @FieldContext(category = CATEGORY_SERVER, doc = "Size of the lookahead window to use "
             + "when detecting if all the messages in the topic have a fixed delay. "
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java
index 5d1dc2e2703..b17387e276e 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java
@@ -335,7 +335,7 @@ public class BucketDelayedDeliveryTracker extends AbstractDelayedDeliveryTracker
             afterCreateImmutableBucket(immutableBucketDelayedIndexPair, createStartTime);
             lastMutableBucket.resetLastMutableBucketRange();
 
-            if (immutableBuckets.asMapOfRanges().size() > maxNumBuckets) {
+            if (maxNumBuckets > 0 && immutableBuckets.asMapOfRanges().size() > maxNumBuckets) {
                 asyncMergeBucketSnapshot();
             }
         }