Skip to content

Commit 4697c42

Browse files
authored
Change default edge ratis configuration (#18576)
1 parent e816bc1 commit 4697c42

1 file changed

Lines changed: 39 additions & 1 deletion

File tree

‎iotdb-core/node-commons/src/assembly/resources/conf/edge/iotdb-system.properties‎

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,38 @@ series_slot_num=1
137137
cn_metric_level=OFF
138138
dn_metric_level=OFF
139139

140+
# ---- ratis snapshot tuning (bound raft log disk usage on small edge nodes) ----
141+
# Ratis can only purge raft log entries that are already covered by a snapshot.
142+
# With stock defaults (snapshot at 400000 logs or every 24h, 24MB segments) the
143+
# ConfigNode / schema region logs may grow toward their 2GB log max
144+
# (*_ratis_log_max_in_byte), which is oversized for edge disks. Snapshot
145+
# earlier and more often so each purge happens while the log is still small;
146+
# the snapshotted state is tiny on an edge node, so the extra snapshots are
147+
# cheap background work.
148+
149+
# Snapshot after every 5000 appended raft log entries instead of the stock
150+
# 400000, so the log is truncated much sooner (stock default: 400000).
151+
config_node_ratis_snapshot_trigger_threshold=5000
152+
schema_region_ratis_snapshot_trigger_threshold=5000
153+
154+
# Roll raft log segments at 6MB instead of 24MB: less unpurgeable slack in the
155+
# currently open segment and finer-grained deletion at purge time (stock
156+
# default: 25165824, i.e. 24MB).
157+
config_node_ratis_log_segment_size_max_in_byte=6291456
158+
schema_region_ratis_log_segment_size_max_in_byte=6291456
159+
160+
# Each purge always keeps the most recent N raft log entries, even if they are
161+
# already covered by a snapshot; lower the safety margin from the stock 1000
162+
# to 200 so the log shrinks further after every purge (stock default: 1000).
163+
config_node_ratis_preserve_logs_num_when_purge=200
164+
schema_region_ratis_preserve_logs_num_when_purge=200
165+
166+
# Force a snapshot when the newest one is older than 30 minutes instead of
167+
# 24 hours, so an idle node's log cannot accumulate for hours between
168+
# snapshots (stock default: 86400, i.e. 24h; unit: seconds).
169+
config_node_ratis_periodic_snapshot_interval=1800
170+
schema_region_ratis_periodic_snapshot_interval=1800
171+
140172
# ---- realtime pipe sync out of the box ----
141173
# The pipe memory pool is 10% of the heap (~22MB at the default 224M budget),
142174
# while the stock pipe memory estimates are sized for datacenter nodes: each
@@ -149,4 +181,10 @@ dn_metric_level=OFF
149181
# latency (single-record p99 < 500ms).
150182
pipe_insert_node_queue_memory=2097152
151183
pipe_enable_memory_checked=false
152-
pipe_logger_cache_max_size_in_bytes=1048576
184+
pipe_logger_cache_max_size_in_bytes=1048576
185+
186+
# The ConfigNode's separated pipe heartbeat polls every DataNode for pipe
187+
# runtime meta (progress, remaining events, degraded/failure status) every
188+
# 30s instead of the stock 3s: fewer background heartbeat round trips on a
189+
# small node, at the cost of ~30s staleness in pipe status (stock: 3).
190+
pipe_heartbeat_interval_seconds_for_collecting_pipe_meta=30

0 commit comments

Comments
 (0)