概要

PlanetScaleは、PostgreSQL向けにシャーディングを自動化する新しいデータベースサービス「Neki」のプレビュー版を公開した。YouTubeが開発した分散データベースミドルウェア「Vitess」に着想を得た設計で、PostgreSQLを大規模にスケールさせる際の複雑さを大幅に軽減することを狙っている。公開されたベンチマークでは、約1.4ペタバイト規模のデータを512シャードに分割した構成で、最大118,538,803クエリ/秒(QPS)という性能を記録したとしている。

アーキテクチャの特徴

Nekiの中核を担うのが「Nekiルーター」だ。Postgresのクエリパーサーを備え、受け取ったSQLを解析して分散クエリプランを作成し、複数シャードにまたがるクエリをバッファリングしたうえで各シャードからの結果を集約する役割を果たす。各シャードはPostgreSQL自体で構成され、プライマリ1台とレプリカ2台以上を異なるアベイラビリティゾーンに配置することで可用性を確保する。ベンチマークではこのシャード数を増やすにつれてほぼリニアにスループットが向上したとされ、水平スケーラビリティの高さを示す結果となった。

既存資産との互換性と導入のしやすさ

Nekiは標準的なPostgresプロトコルで接続でき、既存のPostgreSQL用ドライバーやツールをそのまま利用できる点も特徴だ。これにより、アプリケーション側の大きな変更なしに移行できることを想定している。運用面では、最初は単一構成の通常のPostgreSQLとして始め、負荷が増大した段階でシャーディング構成へ段階的に移行できる設計になっており、小規模な利用から大規模運用まで同じサービス上で継続的にスケールさせられる点が、Vitessの思想を踏襲した狙いだと言える。

今後の展望

PostgreSQLは単一ノードでの運用を前提とした設計が根強く、大規模なシャーディングは従来アプリケーション側での実装や専用ミドルウェアの導入が必要とされてきた。Nekiはこの部分をマネージドサービスとして提供することで、MySQL向けのVitessが切り開いたような「透過的シャーディング」の恩恵をPostgreSQLエコシステムにもたらそうとする試みであり、プレビュー公開後の実運用での性能や信頼性の検証が今後の焦点になりそうだ。