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
# Example tephra-server configuration.
#
# Every value shown is the built-in default, so an empty file behaves identically to running
# with no config at all. Pass this file with `--config tephra.example.toml`. Any key can also
# be set from the environment as TEPHRA__<SECTION>__<KEY>, upper-cased, e.g.
# TEPHRA__WRITER__MAX_BATCH_BYTES=16777216. The command line only carries --bind, --data-dir,
# and --log, and those override whatever is set here.
# Address the TCP listener binds.
= "127.0.0.1:9000"
# Directory holding the log (and index) segment files.
= "tephra-data"
# Tracing filter. Omit to fall back to RUST_LOG, then to "info".
# log = "tephra=debug"
[]
# Total size of each segment file in bytes, including its header.
= 268435456 # 256 MiB
[]
# Bounded request-queue depth. When full, an append blocks (backpressure).
= 1024
# Most requests folded into one group-committed batch. The main throughput-vs-latency dial.
= 1024
# Byte budget for one batch. Clamped down to the segment capacity at startup, so it can never
# exceed a shrunk segment.size.
= 8388608 # 8 MiB
# Recent-position window width for the durable tips map (a memory bound only).
= 1000000
# Resolve the append-condition durable arm with the log scan instead of the index existence
# check. An operational escape hatch: the log is the source of truth, so the scan is always
# safe, just slower.
= false
[]
# The planner's K: the index is chosen only when the post-pruning range is at least scan_bias
# times the estimated result count, so larger values bias toward scanning at the margin. This
# only changes which correct path runs, never the answer.
= 4
[]
# Largest single frame accepted or produced, in bytes.
= 16777216 # 16 MiB
# A streamed read (or subscription) is flushed as a frame once it holds this many events.
= 1024
# A streamed read (or subscription) is flushed as a frame once its buffered events reach this
# many bytes.
= 524288 # 512 KiB
# How often an idle subscription's blocking wait wakes to re-check server shutdown, in
# milliseconds. Keeps a subscription with no events flowing responsive to shutdown without a
# heartbeat frame.
= 250
# TCP keepalive idle time before the first probe on an accepted connection, in seconds. The OS
# default (~2h on Linux) is too long to reap a silently-dead subscription promptly.
= 60
# Interval between TCP keepalive probes once they start, in seconds.
= 15