This is an automated email from the ASF dual-hosted git repository. tanxinyu pushed a commit to branch dev/1.3 in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push: new f2608280621 Fixed bug where Ratis could not write large requests and could not be configured (#14160) (#14166) f2608280621 is described below commit f2608280621c6be86db9b23c2dc91c3149c4c4b5 Author: Potato <tanxi...@apache.org> AuthorDate: Thu Nov 21 19:52:09 2024 +0800 Fixed bug where Ratis could not write large requests and could not be configured (#14160) (#14166) --- .../apache/iotdb/consensus/config/RatisConfig.java | 28 ---------------------- .../apache/iotdb/consensus/ratis/utils/Utils.java | 23 +++++++++++------- 2 files changed, 15 insertions(+), 36 deletions(-) diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/config/RatisConfig.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/config/RatisConfig.java index 220514a5a09..3bb4e64e490 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/config/RatisConfig.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/config/RatisConfig.java @@ -541,8 +541,6 @@ public class RatisConfig { public static class Log { private final boolean useMemory; - private final int queueElementLimit; - private final SizeInBytes queueByteLimit; private final int purgeGap; private final boolean purgeUptoSnapshotIndex; private final long preserveNumsWhenPurge; @@ -555,8 +553,6 @@ public class RatisConfig { private Log( boolean useMemory, - int queueElementLimit, - SizeInBytes queueByteLimit, int purgeGap, boolean purgeUptoSnapshotIndex, long preserveNumsWhenPurge, @@ -567,8 +563,6 @@ public class RatisConfig { int forceSyncNum, boolean unsafeFlushEnabled) { this.useMemory = useMemory; - this.queueElementLimit = queueElementLimit; - this.queueByteLimit = queueByteLimit; this.purgeGap = purgeGap; this.purgeUptoSnapshotIndex = purgeUptoSnapshotIndex; this.preserveNumsWhenPurge = preserveNumsWhenPurge; @@ -584,14 +578,6 @@ public class RatisConfig { return useMemory; } - public int getQueueElementLimit() { - return queueElementLimit; - } - - public SizeInBytes getQueueByteLimit() { - return queueByteLimit; - } - public int getPurgeGap() { return purgeGap; } @@ -635,8 +621,6 @@ public class RatisConfig { public static class Builder { private boolean useMemory = false; - private int queueElementLimit = 4096; - private SizeInBytes queueByteLimit = SizeInBytes.valueOf("64MB"); private int purgeGap = 1024; private boolean purgeUptoSnapshotIndex = true; private long preserveNumsWhenPurge = 1000; @@ -650,8 +634,6 @@ public class RatisConfig { public Log build() { return new Log( useMemory, - queueElementLimit, - queueByteLimit, purgeGap, purgeUptoSnapshotIndex, preserveNumsWhenPurge, @@ -668,16 +650,6 @@ public class RatisConfig { return this; } - public Log.Builder setQueueElementLimit(int queueElementLimit) { - this.queueElementLimit = queueElementLimit; - return this; - } - - public Log.Builder setQueueByteLimit(SizeInBytes queueByteLimit) { - this.queueByteLimit = queueByteLimit; - return this; - } - public Log.Builder setPurgeGap(int purgeGap) { this.purgeGap = purgeGap; return this; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java index 9f25e837924..367b330ac3e 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/utils/Utils.java @@ -56,6 +56,7 @@ import java.util.function.BooleanSupplier; import java.util.stream.Collectors; public class Utils { + private static final int TEMP_BUFFER_SIZE = 1024; private static final byte PADDING_MAGIC = 0x47; private static final String DATA_REGION_GROUP = "group-0001"; @@ -288,9 +289,6 @@ public class Utils { properties, config.getThreadPool().getServerSize()); RaftServerConfigKeys.Log.setUseMemory(properties, config.getLog().isUseMemory()); - RaftServerConfigKeys.Log.setQueueElementLimit( - properties, config.getLog().getQueueElementLimit()); - RaftServerConfigKeys.Log.setQueueByteLimit(properties, config.getLog().getQueueByteLimit()); RaftServerConfigKeys.Log.setPurgeGap(properties, config.getLog().getPurgeGap()); RaftServerConfigKeys.Log.setPurgeUptoSnapshotIndex( properties, config.getLog().isPurgeUptoSnapshotIndex()); @@ -302,15 +300,20 @@ public class Utils { RaftServerConfigKeys.Log.setSegmentCacheSizeMax( properties, config.getLog().getSegmentCacheSizeMax()); RaftServerConfigKeys.Log.setPreallocatedSize(properties, config.getLog().getPreallocatedSize()); - final SizeInBytes writeBufferSize = - SizeInBytes.valueOf(config.getLeaderLogAppender().getBufferByteLimit().getSizeInt() + 8L); - RaftServerConfigKeys.Log.setWriteBufferSize(properties, writeBufferSize); + RaftServerConfigKeys.Log.setWriteBufferSize( + properties, + SizeInBytes.valueOf(config.getLeaderLogAppender().getBufferByteLimit().getSizeInt() + 8L)); RaftServerConfigKeys.Log.setForceSyncNum(properties, config.getLog().getForceSyncNum()); RaftServerConfigKeys.Log.setUnsafeFlushEnabled( properties, config.getLog().isUnsafeFlushEnabled()); RaftServerConfigKeys.Log.setCorruptionPolicy( properties, RaftServerConfigKeys.Log.CorruptionPolicy.WARN_AND_RETURN); + RaftServerConfigKeys.Write.setByteLimit( + properties, config.getLeaderLogAppender().getBufferByteLimit()); + + RaftServerConfigKeys.Log.setQueueByteLimit( + properties, config.getLeaderLogAppender().getBufferByteLimit()); RaftServerConfigKeys.Log.Appender.setBufferByteLimit( properties, config.getLeaderLogAppender().getBufferByteLimit()); RaftServerConfigKeys.Log.Appender.setSnapshotChunkSizeMax( @@ -331,8 +334,12 @@ public class Utils { RaftServerConfigKeys.Read.setTimeout(properties, config.getRead().getReadTimeout()); RaftServerConfigKeys.setSleepDeviationThreshold( - properties, config.getUtils().getSleepDeviationThresholdMs()); - RaftServerConfigKeys.setCloseThreshold(properties, config.getUtils().getCloseThresholdMs()); + properties, + TimeDuration.valueOf( + config.getUtils().getSleepDeviationThresholdMs(), TimeUnit.MILLISECONDS)); + RaftServerConfigKeys.setCloseThreshold( + properties, + TimeDuration.valueOf(config.getUtils().getCloseThresholdMs(), TimeUnit.MILLISECONDS)); final TimeDuration clientMaxRetryGap = getMaxRetrySleepTime(config.getClient()); RaftServerConfigKeys.RetryCache.setExpiryTime(properties, clientMaxRetryGap);