핵심 요약
잡코리아는 Outbox Table에 PostgreSQL Daily Partitioning을 적용해 토픽별 LIST 파티셔닝과 생성일 기준 DAILY RANGE를 구성하고, 7일 주기로 파티션을 DROP하는 자동화를 구현했습니다.
구현 방법
- 토픽 컬럼에 따른 LIST 파티셔닝으로 상위 파티션 분리
- 생성일(created_at) 기준 DAILY RANGE 서브 파티셔닝 생성
- 파티션 관리 자동화: pg_partman으로 파티션 생성/삭제 구성, pg_cron으로 run_maintenance_proc 호출
- 7일 주기로 파티션 DROP으로 데이터 제거
주요 결과
- 약 2억건의 Outbox 데이터를 가진 환경에서 7일 주기의 파티션 DROP으로 DB 부하와 VACUUM 부담을 감소시킴
- 7일치 파티션을 DROP/DETACH로 간편 관리
- pg_partman, pg_cron 도입으로 유지보수 자동화 달성


