본문 바로가기
DB 인사이드 | PostgreSQL Vacuum - 5. Manual Vacuum 📢 본 문서에서는 ①Vacuum의 목적과 ②Vacuum 동작 Mode에 대해 먼저 알아보도록 하겠습니다. 이후 조금은 특별하게 동작하는 ③Vacuum Freeze의 동작원리를 설명한 후 마지막으로 ④전체적인 Vacuum 수행 프로세스에 대해 알아보도록 하겠습니다. 더불어 지난 문서들을 통해 소개되었던 개념들이 모두 혼용되어 사용되는 만큼, 충분한 이해를 바탕으로 읽기를 추천합니다. Manual Vacuum Vacuum 이란? 진공청소기라는 뜻을 지닌 Vacuum은 PostgreSQL에만 존재하는 특수한 개념입니다. 앞선 문서에서 강조했다시피 MVCC 동작원리에 따른 공간 비효율과 XID Wraparound발생 등 PostgreSQL의 특성에 기인한 부작용을 회피하기 위해 등장했습니다. Vacuum은 명령.. 2022. 4. 29.
DB 인사이드 | PostgreSQL Vacuum - 3. Age 📢 본 문서에서는 XID의 연장선상에 있는 Age에 대해 알아보도록 하겠습니다. ①Age의 개념과 도입 배경을 우선 확인한 후, ②Table 및 Row에서 사용되는 Age의 의미와 차이점에 대해 알아보도록 하겠습니다. Age 란? Age = Current XID - 생성시점의 XID 앞서 Data Freezing과정을 설명하며 “Current XID - 생성(입력) 시점의 XID” 값이 21억을 초과하기 전에 Frozen XID로 변경돼야 XID Wraparound 상황을 피할 수 있다고 이야기했습니다. 이처럼 Data Freezing 대상을 선정하기 위해서는 XID값 그 자체보다는 입력(생성) 후 얼마나 오래되었는지 측정할 방법이 필요해졌으며 이를 위한 개념으로 Age가 도입되었습니다. Age의 특징은.. 2022. 4. 29.