본문으로 건너뛰기
hot_standby_feedback

hot_standby_feedback

버전기본값context타입
14offsighupboolean
15offsighupboolean
16offsighupboolean
17offsighupboolean
18offsighupboolean
19offsighupboolean

hot standby가 현재 실행 중인 쿼리 정보를 primary(또는 upstream standby)에 feedback으로 보낼지 정한다. 기본값은 off이며, postgresql.conf나 서버 커맨드라인에서만 설정할 수 있다. standby 서버에 설정하는 파라미터다.

on으로 두면 primary는 standby에서 아직 읽고 있는 row를 정리하지 않는다. cleanup record와의 충돌로 standby 쿼리가 취소되는 문제를 없앨 수 있지만, 그 대가로 primary에 dead row가 오래 남아 워크로드에 따라 bloat가 생길 수 있다. feedback 메시지는 wal_receiver_status_interval보다 자주 보내지 않는다.

cascaded replication 구성에서는 feedback이 upstream을 거쳐 결국 primary까지 전달된다. 중간 standby는 받은 feedback을 upstream으로 넘기는 용도 외에는 사용하지 않는다. feedback 전송은 timestamp 기반이라 standby의 시계가 앞뒤로 이동하면 필요한 간격에 메시지가 나가지 않을 수 있고, 극단적인 경우 primary의 dead row 정리가 장시간 미뤄지는 위험이 있다.

운영 노트: standby에서 장시간 리포트 쿼리를 돌리는 구성이라면 켜는 편이 편하지만, primary 쪽 bloat와 xmin horizon 정체를 함께 감시해야 한다. primary의 pg_stat_replication에서 backend_xmin을 보면 feedback이 잡아두는 지점을 확인할 수 있다.

출처: PostgreSQL 18 문서