-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.toml.example
More file actions
133 lines (119 loc) · 4.4 KB
/
Copy pathconfig.toml.example
File metadata and controls
133 lines (119 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
[server]
bind_address = "0.0.0.0"
port = 8086
max_body_size_bytes = 26214400 # 25 MB
max_points_per_request = 500000 # 0 = default (500k)
request_timeout_secs = 30
query_timeout_secs = 30
# Max concurrent TimeseriesQL executions; 0 = unlimited
max_concurrent_queries = 0
tls_enabled = false
tls_cert_path = ""
tls_key_path = ""
[storage]
wal_dir = "./wal"
meta_dir = "./meta"
# Durable WAL encoding: "bincode" (default) or "arrow_ipc"
wal_format = "bincode"
[flush]
interval_secs = 10
max_points_per_batch = 50000
# WAL group-commit: max entries to coalesce per write batch (0 = disabled)
wal_batch_size = 64
# WAL group-commit: max microseconds to wait before flushing a partial batch
wal_batch_delay_us = 200
# Max ms to wait for WAL batcher queue space before 503 (0 = wait until space is available)
wal_enqueue_timeout_ms = 0
# Keep chDB-ready Arrow batches in RAM for zero-copy flush (default true)
arrow_wal_enabled = true
[chdb]
session_data_path = "./chdb_data"
# Legacy: sets both pools when query_pool_size / write_pool_size are unset.
# pool_size = 4
query_pool_size = 4 # connections reserved for queries
write_pool_size = 4 # connections reserved for ingest/flush (isolated from queries)
schema_cache_max_entries = 10000
# tag_low_cardinality_max = 100000 # unset = use [cardinality].max_tag_values_per_measurement
insert_max_threads = 4
# insert_min_insert_block_size_rows = 100000 # match max_points_per_batch to reduce small parts
# insert_max_insert_block_size = 0 # 0 = ClickHouse engine default
[auth]
enabled = false
# InfluxDB v1-style ?u=&p= on the query string (unsafe: may appear in logs/Referer)
# allow_query_param_credentials = false
[cardinality]
max_tag_values_per_measurement = 100000
max_measurements_per_database = 10000
[cluster]
enabled = false
node_id = 1
cluster_addr = "127.0.0.1:8086"
# Deprecated: leave empty for operator-driven clusters. When set (comma-
# separated, e.g. "host2:8086,host3:8086"), the bootstrap node will probe
# these peers and add them as Raft learners on startup. When empty, the
# external controller (operator) is expected to call
# /cluster/membership/add-node as new nodes come online.
peers = ""
heartbeat_interval_secs = 2
heartbeat_miss_threshold = 5
# anti_entropy_* keys are deprecated and ignored.
replication_log_dir = "./replication_log"
raft_dir = "./raft"
replication_max_retries = 5
replication_queue_depth = 8192
replication_max_inflight_batches = 8
replication_max_coalesce_body_bytes = 8388608
# Max HTTP body for /internal/replicate (0 = auto: max(4× coalesce, server.max_body_size_bytes))
# replicate_body_limit_bytes = 0
replicate_receiver_queue_depth = 1024
# Deprecated: receiver always uses a single ordered worker.
replicate_receiver_workers = 1
replication_truncate_stale_peer_multiplier = 2
# Raft consensus settings (used when cluster is enabled)
# raft_heartbeat_interval_ms = 1000
# raft_election_timeout_ms = 1000
# raft_snapshot_threshold = 1000
# Per-node replication mode. Controls only THIS node's coordinator behavior
# (how writes accepted by this node are replicated). Receivers always accept
# both async (fire-and-forget) and sync (header-gated, ack-with-WAL-seq)
# requests on the same /internal/replicate endpoint, so mixed-mode rolling
# restarts are safe at any moment.
#
# Modes:
# "async" Fire-and-forget HTTP fan-out (default).
# "sync_quorum" HTTP fan-out + await W-of-N peer acks before returning.
#
# Omit the entire [cluster.replication] block to keep async behavior.
[cluster.replication]
mode = "async"
# Worst-case latency budget for a sync_quorum write. On timeout the coordinator
# returns 504; in-flight peer tasks keep running in the background.
ack_timeout_ms = 5000
[cluster.replication.sync_quorum]
# Number of PEER acks required. The local WAL append always happens first.
# "majority" or an explicit integer peer ack count.
min_acks = "majority"
[logging]
level = "info"
format = "text"
[statement_summary]
enabled = true
max_entries = 1000
[disk]
enabled = true
check_interval_secs = 60
warn_threshold_mb = 1024
readonly_threshold_mb = 256
# Hinted handoff stores writes for unreachable peers and replays on recovery.
[hinted_handoff]
enabled = true
max_hints_per_peer = 100000
max_hint_age_secs = 3600
# HTTP rate limiting for /write and /query.
[rate_limit]
enabled = false
max_requests_per_second = 0
# Retention policy enforcement loop. Per-policy duration is metadata (CREATE RP).
[retention]
enabled = true
interval = "12h"