注目★★★★★Hacker News
Postgres コネクションプーラー PgDog、SET コマンドと LISTEN/NOTIFY をネイティブサポート
30秒で把握
- 1PgDog が既存プーラーの「漏れた抽象化」を解決・SET と LISTEN/NOTIFY をネイティブサポート
- 2SQL パーサーで接続状態を管理・RLS やセッション変数を安全に扱える・トランザクションモード対応
- 3Tokio マルチスレッド実装で複数 CPU 活用・秒間 200 万クエリプーリング・1 年以上本番運用
要約
開発チーム PgDog は既存コネクションプーラー (PgBouncer・RDS Proxy など) が持つ「漏れた抽象化」を解決する新しい Postgres プーラーを構築した。PgDog は SQL パーサーで SET ステートメントを検出・クライアント側で状態を管理し、RLS やセッション変数を安全に扱える。さらに LISTEN/NOTIFY の pub/sub 機能を保持し、トランザクションモードでもメッセージ配信が動作する。Tokio ベースのマルチスレッド実装により、複数 CPU で効率よく接続を多重化でき、オートスケーリング待機なしに突発的なクエリバーストに対応する。本番環境で 1 年以上運用され、秒間 200 万クエリをプールしている。
あなたへの影響
既にプロダクション運用中なため、PgBouncer からの移行を検討するなら検証コストは相対的に低い。
推奨:SET コマンドや LISTEN/NOTIFY を多用する既存 PostgreSQL アプリであれば、機能互換性の向上が接続管理の負担を軽減する可能性がある。