PgDog と呼ばれる新しい PostgreSQL 管理ツールが登場し、データベース界で最も困難な問題の一つである自動シャーディングと透明なクエリ処理の解決を約束している。Rust で構築され、AGPL v3 でライセンスされたこのオープンソース プロジェクトは、開発者にとって PostgreSQL のスケーリングを可能な限りシームレスにすることを目指している。
主要機能:
- 数十万の接続をサポートするトランザクションプーリング
- 複数の戦略を持つアプリケーション層( OSI レベル7)ロードバランシング
- PostgreSQL のネイティブパーサーを使用した自動クエリ解析とシャードルーティング
- メモリ内でのクロスシャードクエリ結果アセンブリ
- シャード間で COPY コマンドを分割するための組み込み CSV パーサー
- ライブリシャーディングのための論理レプリケーションプロトコルサポート
透明なシャーディングとクロスシャード インテリジェンス
PgDog の最も魅力的な側面は、分散クエリへのアプローチにある。アプリケーションがデータ分散を認識する必要がある従来のシャーディング ソリューションとは異なり、PgDog は PostgreSQL の互換性を維持しながらネットワーク層で動作する。このツールは PostgreSQL のネイティブ パーサーを使用してクエリを理解し、シャーディング キーを抽出し、適切なシャードへリクエストを自動的にルーティングする。
クエリが複数のシャードにまたがる場合、PgDog はクライアントに送信する前にメモリ内で結果を組み立てる。この透明性により、既存のアプリケーションはコード変更なしにシャーディングの恩恵を受けることができる。しかし、このアプローチはパフォーマンスとリソース使用量について重要な疑問を提起しており、コミュニティは探求を熱望している。
パフォーマンスの疑問と現実世界での懸念
初期のコミュニティ フィードバックは、現在のベンチマークにおける重要なギャップを浮き彫りにしている。PgDog は標準的なコネクション プーリングで印象的なパフォーマンスを実証しているが、真のテストはクエリ パースとクロスシャード操作で行われる。
「私が長年見てきた中で最も興味深い Postgres プロジェクトの一つです。提示されたベンチマークは標準的なプーリングのみを扱っているようですが、クエリ パースとクロスシャード ジョインが関わってくるとどのようになるかを見てみたいです。」
この懸念は、透明なシャーディング ソリューションに対する業界全体の懐疑論を反映している。すべてのクエリをパースする計算オーバーヘッドと、クロスシャード結果を組み立てるためのメモリ要件が組み合わさることで、高負荷下でのパフォーマンスに大きな影響を与える可能性がある。
![]() |
---|
このスクリーンショットは PgDog プロジェクトの GitHub リポジトリを示しており、そのパフォーマンスとベンチマークに関する継続的な議論を反映しています |
高可用性と運用上の課題
プロジェクトの高可用性へのアプローチは、強みと制限の両方を明らかにしている。PgDog は合意メカニズムではなく、同期された設定を通じて複数のフロントエンド プロキシを処理する。この設計選択は複雑なスプリット ブレイン シナリオを回避するが、慎重な展開調整を必要とする。
ゼロダウンタイム展開では、推奨されるアプローチはトラフィックを一時停止し、設定を再読み込みし、数秒以内に操作を再開することである。これは計画されたメンテナンスには有効だが、TCP ロード バランサーでのブルー グリーン展開が必要になる予期しない障害には対処していない。
設定要件:
- メイン設定: pgdog.toml(一般設定とサーバー情報)
- ユーザー設定: users.toml(認証詳細)
- 監視: OpenMetrics エンドポイントと PgBouncer スタイルの管理データベース
- デプロイメント: 複数プロキシの同期リロードによる設定駆動型
ビジネス モデルとライセンスに関する考慮事項
PgDog の AGPL v3 ライセンスは、エンタープライズでの採用について議論を呼んでいる。このライセンスは内部使用とプライベートな変更をソース コードの共有なしに許可するが、PgDog を公共サービスとして提供する組織には変更の共有を要求する。
開発チームは、インフラストラクチャ ソフトウェアの確立されたパターンに従って、マネージド展開とサポート サービスを通じて収益化する計画である。しかし、開発者からの明確化にもかかわらず、一部の組織は AGPL ライセンスについて慎重な姿勢を保っている。
今後の展望
PgDog は、インテリジェント プロキシングを通じて PostgreSQL の水平スケーリングの課題を解決する野心的な試みを表している。プロジェクトの成功は、透明なシャーディングのパフォーマンスへの影響をどれだけうまく処理できるか、そしてシームレスなスケーラビリティの約束を実現できるかに大きく依存するだろう。
プロジェクトはまだ初期段階にあるため、潜在的な採用者は特に複雑なクロスシャード クエリを含む特定の使用ケースを徹底的にテストすることが推奨される。今後数か月で、PgDog が PostgreSQL の信頼性と現代のアプリケーションのスケーリング要求との間のギャップを埋めることができるかどうかが明らかになるだろう。
参考: PgDog