Runtime node settings and dynamic log level #
Node-local knobs no longer require a restart. GET/PUT /_node/_local/settings exposes transient overrides over the pizza.yml
values — search lane budgets, the slowlog threshold, the default search
timeout, trash retention — and they take effect immediately:
# drop the slowlog threshold to 200ms on one node, effective immediately
curl -X PUT http://127.0.0.1:28000/_node/_local/settings \
-H 'Content-Type: application/json' \
-d '{"node.search.slow_threshold_ms": 200}'
The flagship: log.level flips live — no restart, no dropped requests —
which turns “turn on debug logging on the suspicious node” into a
one-liner while preserving target-specific directives like
openraft=warn.
Sibling endpoints cover the maintenance lanes
(/_node/_local/settings/tasks), the WAL epoch-freeze thresholds
(/settings/epoch_freeze) and background build admission
(/settings/epoch_build), with the same transient semantics. The
built-in web console (/_ui/ → Settings → Node runtime) edits
all of them visually and fans a change out to every node:

Every knob shows its effective value and where that value comes from
(built-in default, pizza.yml, or a runtime override), and a save
applies immediately — no restart, no dropped requests.
See
Node Settings for
the catalog and the pizza.yml settings map.