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

lizhimins pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new c9e51d625e [ISSUE #10381] Make HashedWheelTimer parameters 
configurable in QueueLevelConsumerOrderInfoLockManager (#10382)
c9e51d625e is described below

commit c9e51d625e1d84d878d35e1bd3ad5edbf2392225
Author: Quan <[email protected]>
AuthorDate: Wed May 27 19:02:59 2026 +0800

    [ISSUE #10381] Make HashedWheelTimer parameters configurable in 
QueueLevelConsumerOrderInfoLockManager (#10382)
    
    - Add popOrderLockTimerTickMs and popOrderLockTimerTicksPerWheel to 
BrokerConfig
    - Replace hardcoded TIMER_TICK_MS constant with configurable values from 
BrokerConfig
    - Remove unused field consumerOrderInfoManager
    - Default values (tickMs=100, ticksPerWheel=512) preserve backward 
compatibility
---
 .../QueueLevelConsumerOrderInfoLockManager.java      |  6 +++---
 .../broker/processor/LiteManagerProcessorTest.java   |  1 +
 .../org/apache/rocketmq/common/BrokerConfig.java     | 20 ++++++++++++++++++++
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git 
a/broker/src/main/java/org/apache/rocketmq/broker/pop/orderly/QueueLevelConsumerOrderInfoLockManager.java
 
b/broker/src/main/java/org/apache/rocketmq/broker/pop/orderly/QueueLevelConsumerOrderInfoLockManager.java
index 08569977e0..7340e4beb5 100644
--- 
a/broker/src/main/java/org/apache/rocketmq/broker/pop/orderly/QueueLevelConsumerOrderInfoLockManager.java
+++ 
b/broker/src/main/java/org/apache/rocketmq/broker/pop/orderly/QueueLevelConsumerOrderInfoLockManager.java
@@ -35,18 +35,18 @@ import org.apache.rocketmq.logging.org.slf4j.LoggerFactory;
 
 public class QueueLevelConsumerOrderInfoLockManager {
     private static final Logger POP_LOGGER = 
LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
-    private ConsumerOrderInfoManager consumerOrderInfoManager;
 
     private final BrokerController brokerController;
     private final Map<Key, Timeout> timeoutMap = new ConcurrentHashMap<>();
     private final Timer timer;
-    private static final int TIMER_TICK_MS = 100;
 
     public QueueLevelConsumerOrderInfoLockManager(BrokerController 
brokerController) {
         this.brokerController = brokerController;
+        long tickMs = 
brokerController.getBrokerConfig().getPopOrderLockTimerTickMs();
+        int ticksPerWheel = 
brokerController.getBrokerConfig().getPopOrderLockTimerTicksPerWheel();
         this.timer = new HashedWheelTimer(
             new ThreadFactoryImpl("ConsumerOrderInfoLockManager_"),
-            TIMER_TICK_MS, TimeUnit.MILLISECONDS);
+            tickMs, TimeUnit.MILLISECONDS, ticksPerWheel);
     }
 
     /**
diff --git 
a/broker/src/test/java/org/apache/rocketmq/broker/processor/LiteManagerProcessorTest.java
 
b/broker/src/test/java/org/apache/rocketmq/broker/processor/LiteManagerProcessorTest.java
index 5518a2fa10..24fe1b9f7b 100644
--- 
a/broker/src/test/java/org/apache/rocketmq/broker/processor/LiteManagerProcessorTest.java
+++ 
b/broker/src/test/java/org/apache/rocketmq/broker/processor/LiteManagerProcessorTest.java
@@ -146,6 +146,7 @@ public class LiteManagerProcessorTest {
         
when(brokerController.getLiteEventDispatcher()).thenReturn(liteEventDispatcher);
         
when(brokerController.getPopLiteMessageProcessor()).thenReturn(popLiteMessageProcessor);
         
when(brokerController.getConsumerOffsetManager()).thenReturn(consumerOffsetManager);
+        when(brokerController.getBrokerConfig()).thenReturn(new 
BrokerConfig());
 
         ConsumerOrderInfoManager consumerOrderInfoManager = new 
MemoryConsumerOrderInfoManager(brokerController);
         
when(popLiteMessageProcessor.getConsumerOrderInfoManager()).thenReturn(consumerOrderInfoManager);
diff --git a/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java 
b/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
index 08e27a20ee..c97ff2fc29 100644
--- a/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
+++ b/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
@@ -572,6 +572,10 @@ public class BrokerConfig extends BrokerIdentity {
 
     private int liteLagLatencyTopK = 50;
 
+    // HashedWheelTimer config for pop order lock manager
+    private long popOrderLockTimerTickMs = 100;
+    private int popOrderLockTimerTicksPerWheel = 512;
+
     public String getConfigBlackList() {
         return configBlackList;
     }
@@ -2489,6 +2493,22 @@ public class BrokerConfig extends BrokerIdentity {
         this.liteLagLatencyTopK = liteLagLatencyTopK;
     }
 
+    public long getPopOrderLockTimerTickMs() {
+        return popOrderLockTimerTickMs;
+    }
+
+    public void setPopOrderLockTimerTickMs(long popOrderLockTimerTickMs) {
+        this.popOrderLockTimerTickMs = popOrderLockTimerTickMs;
+    }
+
+    public int getPopOrderLockTimerTicksPerWheel() {
+        return popOrderLockTimerTicksPerWheel;
+    }
+
+    public void setPopOrderLockTimerTicksPerWheel(int 
popOrderLockTimerTicksPerWheel) {
+        this.popOrderLockTimerTicksPerWheel = popOrderLockTimerTicksPerWheel;
+    }
+
     public boolean isUseMessageFilterForNotification() {
         return useMessageFilterForNotification;
     }

Reply via email to