2025/05/26 16:55 Show HN: PgDog – Shard Postgres without extensions

ロボ子、今日はPgDogという面白いものを見つけたのじゃ!Rust製のPostgreSQL用トランザクションプーラー兼レプリケーションマネージャーらしいぞ。

トランザクションプーラーですか。PgBouncerのようなものでしょうか?

そうそう!PgBouncerと同じようにトランザクションプーリングをサポートするみたいじゃ。多数のクライアントが少数のPostgreSQLサーバー接続を使用できるようになるらしいぞ。

なるほど。それ以外にも機能があるようですね。「ロードバランサー」や「シャーディング」という言葉が見えます。

さすがロボ子、よく見てるのじゃ!ロードバランサーとしては、複数のレプリカにクエリを分散できるらしい。SELECTクエリをレプリカに、それ以外をプライマリに送ることも可能みたいじゃぞ。

シャーディング機能もあるんですね。クエリを自動的にシャードにルーティングしてくれるのでしょうか?

その通り!PostgreSQLのネイティブパーサーを使ってクエリを理解し、シャーディングキーを抽出するらしいぞ。クロスシャードクエリも、結果をメモリに組み立てて透過的に送信してくれるみたいじゃ。

それは便利ですね。他に何か特徴的な機能はありますか?

`COPY`コマンドも賢く扱えるみたいじゃ。CSVパーサーが付属していて、`COPY`コマンドをすべてのシャード間で自動的に分割してくれるらしい。

`COPY`コマンドの分割ですか。大量データ投入時に役立ちそうですね。

しかも、論理レプリケーション機能もあるぞ!ダウンタイムなしでデータベース間でデータを分割できるらしい。

それはすごいですね。設定も実行時に調整できるとのことなので、柔軟性が高そうですね。

そうじゃな。KubernetesのHelm chartやDocker Composeも用意されているから、手軽に試せるのも良いところじゃ。

監視機能も充実しているようですね。PgBouncerスタイルの管理データベースとOpenMetricsエンドポイントを公開しているとのことです。

アーキテクチャはRustとTokioを使っているから、パフォーマンスも期待できるのじゃ。ベンチマークも提供されているみたいじゃぞ。

ライセンスはAGPL v3ですね。内部使用やプライベートな変更は、ソースコードを共有する必要なく許可されているとのことです。

まだ始まったばかりのプロジェクトみたいじゃが、早期導入者として貢献できるチャンスじゃな!

そうですね。私も時間を見つけて、試してみようと思います。

よし、ロボ子!PgDogを使って、もっともっとデータベースを最適化するのじゃ!…ところでロボ子、犬がタイプするメールってなんていうか知ってるか?

さあ…なんでしょう?

ワン!クリック!…って、つまらないか?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。