프로젝트 소개
PgDog는 Rust로 작성된 오픈 소스 PostgreSQL 프록시로, 커넥션 풀링, 복제본 간 로드 밸런싱, 데이터베이스의 수평적 샤딩을 통해 PostgreSQL 배포 환경을 확장하도록 설계되었다. PostgreSQL 프로토콜을 이해하는 애플리케이션 계층(OSI 7계층) 프록시로 동작하여, 읽기/쓰기 의도, 샤딩 키, 스키마 컨텍스트를 기반으로 한 지능적인 쿼리 라우팅을 가능하게 한다.
주요 기능은 다음과 같다:
- 트랜잭션 및 세션 풀링과 함께, 포기된 트랜잭션의 자동 롤백을 포함한 고급 복구 메커니즘을 제공한다.
- 라운드 로빈, 랜덤, 최소 활성 전략을 사용하여 프라이머리 및 복제본 노드 간 로드 밸런싱을 수행하며, 실시간 헬스 체크와 페일오버를 지원한다.
- 파티션 함수(HASH, LIST, RANGE) 또는 스키마 기반 라우팅을 통한 샤딩을 지원하고, 인메모리 결과 조립을 통한 크로스샤드 쿼리를 지원한다.
- 시퀀스 없는 고유 ID 생성, 샤드 키 업데이트, 다중 튜플 삽입, 원자적 크로스샤드 쓰기를 위한 2단계 커밋을 지원한다.
- 논리적 복제를 사용한 리샤딩 기능을 통해 무중단 데이터 재분배가 가능하다.
- 인증 유연성: 패스워드 기반, AWS RDS IAM, Azure Workload Identity, HashiCorp Vault(동적/정적 역할)를 지원한다.
- OpenMetrics, OTEL, 또는 PgBouncer 스타일 관리 데이터베이스를 통한 모니터링을 제공한다.
배포 옵션으로는 Docker Compose, Kubernetes용 Helm 차트(EKS 포함), AWS ECS용 Terraform 모듈이 있다. 설정은 TOML 파일을 사용한다(`pgdog.toml`은 데이터베이스 및 설정, `users.toml`은 자격 증명용). 이 도구는 범용 하드웨어에서의 성능에 최적화되어 있으며, 리샤딩 시 스키마 및 데이터 동기화를 위한 내장 도구를 포함한다.
문서 및 커뮤니티 지원은 공식 사이트와 Discord를 통해 제공된다. 엔터프라이즈 에디전 기능은 별도로 문서화되어 있다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.