要約 / ポイント
pgrustという新しいプロジェクトが、PostgresをRustで完全に書き直し、すべての回帰テストに合格しました。しかし、本当の物語は単なる速度ではなく、AIがこの「不可能」な偉業をどのように現実のものにしたかです。
フォークを超えて:完璧なクローン?
PostgresのRustによる完全な書き直し、pgrustと名付けられたものが発表されました。これは単なる学術的な演習をはるかに超えるものです。この大胆なプロジェクトは、46,000以上の公式Postgres回帰クエリすべてに合格するという記念碑的な偉業を達成しました。これは、もしあるとしても、ごくわずかな「互換性のある」データベースしか真に主張できないベンチマークです。これは単なる互換性への言及ではなく、宣言です。
決定的に重要なのは、pgrustが既存のCコードベースのフォークでもなければ、オリジナルにボルトで固定された拡張機能でもないということです。これは、Postgres 18.3との100%の動作互換性を目指して綿密に設計された、完全なゼロからの再実装です。目標は古いエンジンを微調整することではなく、外部契約のあらゆるニュアンスを維持しながら、Rustで完全に置き換えることでした。
その結果、外部からはCベースの先行バージョンと全く区別がつかないデータベースサーバーが誕生しました。正確なワイヤプロトコルを話し、標準の`psql`クライアントとのシームレスな統合を可能にします。さらに驚くべきことに、pgrustは既存のPostgres 18.3データディレクトリから直接起動することもでき、新しいエンジンと完全なクローンの境界線を曖昧にするレベルのディスク互換性を示しています。これは単なる表面的な模倣ではなく、深く、根本的な一致です。
真の目標:プロセスよりもスレッド
Postgresは、その安定性にもかかわらず、重い接続ごとのプロセスモデルに依存しています。各クライアントは独自のバックエンドプロセスを要求し、堅牢な分離を提供しますが、かなりのメモリオーバーヘッドを伴います。この設計は、並列操作のための状態共有も複雑にし、しばしばコネクションプーリングを必要とします。
しかし、pgrustは未リリースの実験バージョンで異なる道を辿っています。これは、これを接続ごとのスレッドアーキテクチャに置き換えることを目指しています。この変更は、接続ごとのメモリ消費量を削減し、異なるデータベースコンポーネント間での情報共有を簡素化することを約束しており、現代のワークロードにとって重要な利点となります。
しかし、このアーキテクチャの転換は、重要なトレードオフをもたらします。Postgresのプロセス分離は、重要なセーフティネットを提供します。つまり、1つの接続でのクラッシュは通常、サーバー全体をダウンさせることはありません。スレッドの場合、単一のメモリバグや安全でない拡張機能がプロセス全体を不安定にする可能性があり、本来備わっていた安全策の一部が失われることになります。
この根本的な再アーキテクチャは、pgrustの最も大胆なパフォーマンス主張を支えています。開発者たちは、この未リリースのバージョンにおいて、トランザクションワークロードで未検証の50%の向上、分析クエリでは驚異的な300倍の改善を報告しています。これらの劇的な数値は、これらのベンチマークを裏付けるコードが独立した検証のためにまだ公開されていないため、推測の域を出ません。
秘密兵器:AI主導の開発
Postgresのpgrustへの記念碑的な書き直しは、Rustの能力を証明するだけでなく、AI主導の開発の大胆なデモンストレーションでした。Michael MalisとJason SeibelはAIコーディングエージェントを広範囲に活用し、Postgresの100万行に及ぶCコードベースを驚くべき速度と実現可能性で翻訳することを可能にしました。以前は小さなチームでは考えられなかったこの記念碑的なタスクは、自動翻訳によって実行可能となり、そのような事業の経済性を根本的に変えました。
これは、真の実験が進行中であることを示しています。RustがPostgresを高速化できるかどうかだけでなく、AIがレガシーインフラの書き換えを、コアアーキテクチャを再考するのに十分なほど手頃なものにできるかどうかです。かつては手つかずのモノリスと考えられていた何十年ものCコードの蓄積が、深いアーキテクチャ変更の実現可能なターゲットとなりました。公開されているpgrustバージョンは、Postgresの元の構造をほぼ踏襲していますが、未公開のthread-per-connectionモデルは、根本的な設計変更への真の野心を示しています。
このパラダイムシフトは、他の大規模で数十年前のソフトウェアプロジェクトを近代化するための費用対効果分析を根本的に再定義します。Linux、Apache、あるいはさらに古いエンタープライズアプリケーションなど、以前は書き換えが高価すぎたりリスクが高すぎると考えられていたシステムが、今や可能性の領域に入ってきました。AIエージェントは初期の翻訳負担を劇的に軽減し、人間のエンジニアが革新的なアーキテクチャの全面的な見直しに集中できるようにします。詳細については、malisper/pgrust: Postgres rewritten in Rust, now passing 100% of the Postgres regression tests - GitHubをご覧ください。
誇大広告 vs. 現実: pgrustに関する評決
驚くことではないが、エンジニアリングコミュニティのpgrustに対する評決は大きく分かれている。多くの開発者が46,000以上の公式Postgres回帰クエリをすべてパスしたという成果に多大な敬意を表している一方で、健全な懐疑論も残っている。未公開バージョンがトランザクションパフォーマンスで50%向上、分析ワークロードで300倍高速であると主張する未検証のベンチマークが、この注意を促している。
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
誤解しないでほしい。pgrustは画期的な実験であり、本番環境で使える代替品ではない。広範な拡張エコシステムのような主要な領域は未完成であり、クラッシュリカバリと長期的な安定性のために必要な重要な強化はまだ実現されていない。これをライブ環境にデプロイすることは無責任である。
最終的に、pgrustの最も深遠な貢献は、単一のベンチマークやPostgresの直接的な代替品ではないかもしれない。むしろ、その真の価値は、それが生み出す前例のない自由にある。AI主導の開発によって可能になったこのプロジェクトは、Postgresプロジェクト全体をフォークする法外なコストと複雑さなしに、thread-per-connectionモデルのような根本的に新しいデータベースアーキテクチャをテストすることの実現可能性を示している。
よくある質問
pgrustとは何ですか?
pgrustは、Rustプログラミング言語でPostgresデータベースをゼロから完全に書き直したものです。Postgresの46,000以上の公式回帰テストをすべてパスしており、動作的に同一のドロップイン代替品となることを目指しています。
pgrustはPostgresより高速ですか?
pgrustの現在のリリースバージョンはパフォーマンスに焦点を当てていません。しかし、未公開の開発バージョンでは、thread-per-connectionモデルに切り替えることで、トランザクションワークロードで最大50%、分析ワークロードで300倍という大幅な高速化を主張しています。
pgrustを本番環境で使用できますか?
いいえ。開発者はpgrustが本番環境に対応していないと述べています。回帰テストはパスしていますが、特にクラッシュリカバリやレプリケーションのような分野で、本番環境での信頼を得るために必要な長年の実世界でのテストはまだ行われていません。
pgrustの構築にAIはどのように使用されましたか?
開発者は、約100万行のCコードをRustに翻訳するという大規模なタスクを加速するために、AIを活用したコーディングエージェントを extensively 使用しました。これにより、そうでなければ法外な費用がかかる実験が実現可能になりました。
