AI Briefing

PgQue: Zero-Bloat Postgres Queue

·2026.04.19 01:50

핵심 내용

Postgres에서 bloat 없이 동작하는 순수 SQL 큐를 소개한다.

자세히 보기

PgQue는 PgQ 아키텍처를 다시 가져와, C extension이나 별도 daemon 없이 pure SQL + PL/pgSQL로 동작하는 Postgres 큐다.

  • 핵심 목표는 dead tuples와 VACUUM 부담을 줄여, 장시간 고부하에서도 성능 저하가 적은 큐를 만드는 것.
  • 구현은 snapshot-based batching과 TRUNCATE-based table rotation에 기반한다.
  • **Postgres 14+**에서 동작하며, RDS, Aurora, Cloud SQL, AlloyDB, Supabase, Neon 같은 managed Postgres 환경도 지원한다.
  • 설치는 sql/pgque.sql 하나로 가능하고, 기본 tick은 pg_cron으로 돌리거나 외부 scheduler로 직접 호출할 수 있다.
  • 기본 지연은 tick과 poll 때문에 보통 1~2초 수준이며, 대신 send/receive/ack 자체는 microsecond 단위로 빠르다.

비교 관점에서는, PgQue는 일반적인 SKIP LOCKED + DELETE/UPDATE 기반 job queue와 달리 누적 bloat를 피하는 데 초점을 둔다.

  • 장점: zero bloat, fan-out 소비자 모델, ACID 트랜잭션, SQL로만 운용 가능
  • 단점: 초저지연 dispatch에는 맞지 않음, per-job priority나 전형적인 worker framework 기능은 약함

사용 시나리오는 event-driven fan-out, 장기 운영 안정성, language-agnostic SQL API가 중요할 때다. 반대로 sub-3ms latency, cron, unique jobs, 깊은 ecosystem 통합이 필요하면 전통적인 job queue가 더 적합하다.

역할도 분리되어 있다.

  • pgque_reader: 조회/디버깅
  • pgque_writer: producer/consumer용 API
  • pgque_admin: 운영 및 migration

프로젝트는 아직 early-stage지만, 성능 벤치마크와 예제, Python/Go/TypeScript 클라이언트 초안까지 포함해 실제 도입 가능성을 보여준다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.