PostgreSQL 내부 구조 문서 11주년, 논리 복제와 비동기 I/O 챕터 추가
- 스즈키 히로노부가 2015년 9월 26일 공개한 The Internals of PostgreSQL이 11주년을 맞았고, 2026년 5월 논리 복제(12장, 베타)와 2026년 6월 비동기 I/O(8.5절)가 새로 추가됨
- 2026년 5월 전체 챕터 리팩터로 4,890단어(5.6%)가 줄었고, 8장은 9.5 이하 폐기 내용을 걷어내고 9.6 이후 기준으로 다시 씀
- HOT 업데이트는 인덱스 컬럼이 바뀌지 않고 새 튜플이 같은 페이지에 들어갈 때만 동작해서, status나 updated_at처럼 자주 갱신되는 컬럼에 인덱스를 걸면 그 테이블의 업데이트마다 HOT이 꺼짐
- 갱신이 잦은 테이블에 fillfactor를 80~90으로 낮추면 페이지에 여유가 남아 HOT이 실제로 일어나고, pg_stat_user_tables의 n_tup_hot_upd와 n_tup_upd를 비교하면 튜닝 전에 효과를 확인 가능
- Postgres 18에서 전문 검색이 사전과 설정을 클러스터 기본 콜레이션 제공자로 읽도록 바뀌어 ICU나 PG_UNICODE_FAST 클러스터는 FTS와 pg_trgm 동작이 달라질 수 있고, 릴리스 노트가 pg_upgrade 후 reindex를 요구함
Hacker News 의견들
particledb Jepsen 리포트 보고 Postgres SSI 구현에 관심 생겼는데, 이 문서 훑어볼 거면 HOT 업데이트 경로부터 봐. HOT이랑 zHeap, TOAST 노트까지 읽으면 Postgres가 뭘 하고 뭘 안 하는지 머릿속에 그림이 잡힘.
아 그 2020년 Jepsen Postgres 리포트가 SSI 구현의 오래된 버그를 찾아낸 그거지.
HOT 챕터가 실전 이득이 제일 큼. HOT은 인덱스 컬럼이 안 바뀌고 새 튜플이 같은 페이지에 들어갈 때만 도는데, status나 updated_at처럼 자주 갱신되는 컬럼에 인덱스를 걸어두면 그 테이블 업데이트 전부에서 HOT이 조용히 꺼짐.
나는 Postgres 매일 쓰는데 무슨 말인지 하나도 모르겠음.
컬럼 폭이랑 수정 빈도에 달렸음. 너무 넓으면 fillfactor 낮추는 게 좋은 생각이 아닐 수도 있음.
왜 이 댓글 AI가 쓴 것처럼 들리지?
새 MVCC는 여기 없더라. OrioleDB 쪽 봐야 함.
Postgres가 아직 그걸 안 받아들였고 받아들일 계획도 못 봤음. Tom Lane이 인터뷰에서 dead tuple과 vacuum을 버리는 세상은 안 보인다고 했음.
과거 스레드도 있음. 2025년 3월 40개, 2022년 2월 19개, 2022년 1월 39개, 2019년 1월 25개, 2017년 1월 53개.
12장(전문 검색)이 Postgres 18에서 조용히 바뀜. FTS가 사전과 설정을 항상 libc가 아니라 클러스터 기본 콜레이션 제공자로 읽게 돼서, ICU나 PG_UNICODE_FAST 클러스터는 FTS랑 pg_trgm 동작이 달라질 수 있음. 릴리스 노트가 pg_upgrade 후 reindex하라고 명시했고, 18에서는 nondeterministic collation에 LIKE 쓰는 게 에러가 아니게 됨.