@@ -137,6 +137,38 @@ series_slot_num=1
137137cn_metric_level =OFF
138138dn_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).
150182pipe_insert_node_queue_memory =2097152
151183pipe_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