Standby tells primary about its oldest snapshot to avoid query conflicts.
At a glance
| Property | Value |
|---|---|
| Parameter | hot_standby_feedback |
| Category | Replication |
| Default | off |
| Value type | boolean / enum / numeric |
| Change scope | Reload (no restart) |
What it does
When on, a standby reports its oldest running transaction to the primary so the primary delays vacuuming rows the standby still needs, reducing recovery conflicts (SQLSTATE 40001/57014 on standbys).
How to apply a change
Takes effect on configuration reload (sighup context). Run SELECT pg_reload_conf(); or send SIGHUP — no restart needed.
Inspect the current value and source with SHOW hot_standby_feedback; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'hot_standby_feedback';.
Tuning guidance
Turn on when long read queries on the standby are being canceled. The trade-off: it can cause table bloat on the primary if standby queries run very long.