From a3bc52f353f0df310366a7b64847eab15b376338 Mon Sep 17 00:00:00 2001 From: "maowei.ymw" Date: Tue, 2 Sep 2025 15:33:31 +0800 Subject: [PATCH] Optimize the buffer size of the timer --- .../apache/rocketmq/store/config/MessageStoreConfig.java | 9 +++++++++ .../apache/rocketmq/store/timer/TimerMessageStore.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java index 60f6a90381c..f79600ce3ab 100644 --- a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java +++ b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java @@ -74,6 +74,7 @@ public class MessageStoreConfig { private int timerFlushIntervalMs = 1000; private int timerGetMessageThreadNum = 3; private int timerPutMessageThreadNum = 3; + private int timerMessageBufferSize = 512; private boolean timerEnableDisruptor = false; @@ -1671,6 +1672,14 @@ public void setTimerPutMessageThreadNum(int timerPutMessageThreadNum) { this.timerPutMessageThreadNum = timerPutMessageThreadNum; } + public int getTimerMessageBufferSize() { + return timerMessageBufferSize; + } + + public void setTimerMessageBufferSize(int timerMessageBufferSize) { + this.timerMessageBufferSize = timerMessageBufferSize; + } + public boolean isTimerEnableDisruptor() { return timerEnableDisruptor; } diff --git a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java index d6af7b84e79..ed12f815808 100644 --- a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java +++ b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java @@ -198,7 +198,7 @@ public TimerMessageStore(final MessageStore messageStore, final MessageStoreConf bufferLocal = new ThreadLocal() { @Override protected ByteBuffer initialValue() { - return ByteBuffer.allocateDirect(storeConfig.getMaxMessageSize() + 100); + return ByteBuffer.allocateDirect(storeConfig.getMaxMessageSize() + storeConfig.getTimerMessageBufferSize()); } };