- Rust + Tokio로 작성된 PostgreSQL 트랜잭션 풀링 + 샤딩 + 로드밸런싱 도구, 수백 개의 데이터베이스와 수십만 개의 연결을 효율적으로 관리
- PgBouncer처럼 동작하면서도, 쿼리 분석과 복제까지 지원하는 PostgreSQL 전문 애플리케이션 계층(OSI L7) 프록시
- Kubernetes 및 Docker로 쉽게 배포 가능하며, 클러스터 구성, 로드밸런싱, 복제, 다중 샤드 관리까지 단일 구성으로 처리 가능
- 자체적인 논리적 복제 관리 기능과 함께, 기존 PostgreSQL 클러스터를 중단 없이 샤딩 확장할 수 있음
주요 기능
-
로드 밸런싱
- OSI Layer 7에서 PostgreSQL 쿼리 기반으로 트래픽 분산
-
SELECT는 복제본으로, INSERT/UPDATE 등은 기본 노드로 자동 라우팅
- 전략: round robin, random, least active connections 등 지원
- 장애 발생 시 실시간 헬스체크 및 자동 Failover
-
트랜잭션 풀링
- PgBouncer와 유사하게, 세션/트랜잭션 단위 풀링 지원
- 수십만 클라이언트를 몇 개의 PostgreSQL 연결로 처리 가능
-
샤딩 및 복제
- SQL 분석을 통해 shard key를 추출하고, 해당 샤드에 쿼리 자동 전달
- 교차 샤드 쿼리는 결과를 메모리에서 조합해 사용자에게 단일 응답 제공
-
COPY 명령도 샤드 단위로 분할 처리
-
논리적 복제 지원: 무중단 상태에서 기존 DB를 샤딩 확장 가능
-
실시간 구성 변경
- PgBouncer 스타일의 .toml 설정 사용, 재시작 없이 설정 변경 가능
- 사용자별 인증, 데이터베이스별 연결, 샤드 정보까지 설정 가능
-
모니터링
- 표준 PgBouncer 관리 포트 + OpenMetrics 지원
- Datadog 연동 예시 및 대시보드 포함