This is an automated email from the ASF dual-hosted git repository.
CRZbulabula pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 23201f223ca Fix WAL throttle threshold fallback on hot reload (#18336)
23201f223ca is described below
commit 23201f223caf29f648c484edc0f10d7714fb3a26
Author: Yongzao <[email protected]>
AuthorDate: Tue Jul 28 23:23:48 2026 +0800
Fix WAL throttle threshold fallback on hot reload (#18336)
---
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 7 ++++++
.../org/apache/iotdb/db/conf/PropertiesTest.java | 27 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 09584dfe619..15d2b7d003d 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -1805,6 +1805,11 @@ public class IoTDBDescriptor {
}
long throttleDownThresholdInByte =
Long.parseLong(getWalThrottleThreshold(properties));
+ if (throttleDownThresholdInByte < 0) {
+ throttleDownThresholdInByte =
+ Long.parseLong(
+
ConfigurationFileUtils.getConfigurationDefaultValue(DEFAULT_WAL_THRESHOLD_NAME[1]));
+ }
if (throttleDownThresholdInByte > 0) {
conf.setThrottleThreshold(throttleDownThresholdInByte);
}
@@ -2419,6 +2424,8 @@ public class IoTDBDescriptor {
Long.toString(commonDescriptor.getConfig().getSortBufferSize()));
ConfigurationFileUtils.updateAppliedProperties(
"mods_cache_size_limit_per_fi_in_bytes",
Long.toString(conf.getModsCacheSizeLimitPerFI()));
+ ConfigurationFileUtils.updateAppliedProperties(
+ DEFAULT_WAL_THRESHOLD_NAME[1],
Long.toString(conf.getThrottleThreshold()));
}
private void loadQuerySampleThroughput(TrimProperties properties) throws
IOException {
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/conf/PropertiesTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/conf/PropertiesTest.java
index aad4851f6bc..191719ab8d4 100755
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/conf/PropertiesTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/conf/PropertiesTest.java
@@ -41,6 +41,33 @@ import java.util.Properties;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses;
public class PropertiesTest {
+ @Test
+ public void testHotReloadNegativeWalThrottleThresholdUsesDefault() throws
Exception {
+ final String key = "wal_throttle_threshold_in_byte";
+ final long configuredThreshold = 1024 * 1024 * 1024L;
+ final long defaultThreshold =
+
Long.parseLong(ConfigurationFileUtils.getConfigurationDefaultValue(key));
+ final IoTDBDescriptor descriptor = IoTDBDescriptor.getInstance();
+ final long originalThreshold =
descriptor.getConfig().getThrottleThreshold();
+
+ try {
+ final TrimProperties properties = new TrimProperties();
+ properties.setProperty(key, Long.toString(configuredThreshold));
+ descriptor.loadHotModifiedProps(properties);
+ Assert.assertEquals(configuredThreshold,
descriptor.getConfig().getThrottleThreshold());
+
+ properties.setProperty(key, "-1");
+ descriptor.loadHotModifiedProps(properties);
+ Assert.assertEquals(defaultThreshold,
descriptor.getConfig().getThrottleThreshold());
+ Assert.assertEquals(
+ Long.toString(defaultThreshold),
ConfigurationFileUtils.getAppliedProperties().get(key));
+ } finally {
+ final TrimProperties properties = new TrimProperties();
+ properties.setProperty(key, Long.toString(originalThreshold));
+ descriptor.loadHotModifiedProps(properties);
+ }
+ }
+
@Test
public void testHotReloadTsFileParserInFlightLimits() throws Exception {
final IoTDBDescriptor descriptor = IoTDBDescriptor.getInstance();