image.png

물리적 관점에서의 PostgreSQL

PostgreSQL 구조는 Shared Memory, 프로세스, 데이터 파일로 구성됨.

Shared Memory는 Shared Buffer와 WAL 버퍼가 주 구성 요소임.

프로세스는 Postgres 프로세스, 백그라운드 프로세스, 백엔 프로세스로 구분 됨. (민트색, 파란색, 초록색)

Shared Memory

Shared Buffer

Shared Buffer는 데이터베이스 서버의 주 메모리(RAM) 내에 할당된 메모리 영역이고

이 영역에는 데이터베이스 테이블과 인덱스에서 필요한 데이터 페이지들이 캐싱됨.

변경된 페이지(더티 페이지)는 일정 시간 후에 백그라운드 프로세스에 의해 디스크에 쓰여짐.

WAL 버퍼

WAL은 Write Ahead Log의 약자 ⇒ (데이터 파일의 변경된 내용은 해당 변경 사항이 로깅된 이후에 쓰여져야만 함)

변경 사항을 즉시 디스크에 쓰는 대신, 버퍼를 통해 효율적으로 관리하고 배치 작업으로 디스크에 기록함.

프로세스

ps -fu postgres