このプロジェクトについて
PgDogはRustで書かれたオープンソースのPostgreSQLプロキシであり、接続プール、レプリカ間でのロードバランシング、データベースの水平シャーディングを通じてPostgreSQLデプロイメントのスケーリングを実現することを目的としています。OSIレイヤー7(アプリケーション層)のプロキシとして動作し、PostgreSQLプロトコルを理解することで、読み取り/書き込みの意図、シャーディングキー、スキーマコンテキストに基づいたインテリジェントなクエリルーティングを可能にします。
主な機能は以下の通りです:
- 放棄されたトランザクションの自動ロールバックを含む高度な回復メカニズムを持つトランザクションおよびセッションプーリング。
- ラウンドロビン、ランダム、または最小アクティブな戦略を使用したプライマリおよびレプリカノード間のロードバランシング。リアルタイムのヘルスチェックとフェールオーバー対応。
- パーティション関数(HASH、LIST、RANGE)またはスキーマベースのルーティングによるシャーディング。メモリ内結果アセンブリによるクロスシャードクエリをサポート。
- シーケンスなしのユニークID生成、シャーディングキー更新、複数タプル挿入、アトミックなクロスシャード書き込みのための2フェーズコミットに対応。
- ロジカルレプリケーションを使用したリシャーディング機能により、ダウンタイムゼロでデータ再分配が可能。
- 認証の柔軟性:パスワードベース、AWS RDS IAM、Azure Workload Identity、HashiCorp Vault(ダイナミック/スティッカーole)をサポート。
- OpenMetrics、OTEL、またはPgBouncer風管理データベースによる監視。
デプロイメントオプションにはDocker Compose、Kubernetes(EKS含む)用のHelmチャート、AWS ECS用のTerraformモジュールがあります。設定はTOMLファイル(データベースと設定用の`pgdog.toml`、認証情報用の`users.toml`)を使用します。本ツールはコモディティハードウェア向けにパフォーマンスが最適化されており、リシャーディング中のスキーマおよびデータ同期用の組み込みツールを含みます。
ドキュメントおよびコミュニティサポートは公式サイトおよびDiscordでご利用いただけます。エンタープライズ editionの機能は別途文書化されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.