공통 시작 상태

변경은 여러 데이터 페이지에 흩어져 있지만, 커밋 시점에 먼저 디스크에 쓸 대상은 선택할 수 있습니다.

WAL의 성능 이점은 같은 UPDATE를 더 적게 쓰는 것이 아니라, 비싼 랜덤 페이지 기록을 뒤로 미루고 먼저 순차 로그 append로 내구성을 확보한다는 데 있습니다.

메모리에서 발생한 변경

UPDATE 10건
→
경로
커밋 시 디스크가 하는 일
즉시 비용
직접 기록 데이터 페이지를 바로 씀
커밋 시점 변경된 페이지들을 각각 찾아가서 즉시 기록
페이지 위치가 흩어져 있으므로 디스크가 여러 곳을 오가며 써야 합니다.
즉시 필요한 I/O
랜덤 10회

커밋마다 흩어진 페이지를 직접 방문해야 하므로 지연이 커집니다.

WAL 로그만 먼저 디스크에 씀
커밋 시점 로그 파일 끝에 레코드 10개를 연속으로 append
파일 끝에 append
실제 데이터 페이지 flush는 이후에 모아서 처리해도 WAL 규칙을 깨지 않습니다.
즉시 필요한 I/O
순차 1경로

내구성은 로그에서 먼저 확보하고, 페이지 기록은 나중에 배치로 넘깁니다.

핵심

WAL은 쓰기 횟수를 없애는 것이 아니라, 커밋의 핵심 작업을 랜덤 페이지 기록에서 순차 로그 기록으로 바꿔서 빠르게 응답하게 만듭니다.