pgrust、Postgresより300倍高速な分析エンジン実現
Judul asli: Making Postgres 300x faster for analytics: batching, operator fusion, and SIMD
Mengapa Ini Penting
OSSのPostgres互換エンジンがOLAPで商用製品を超える性能を示したことで、データベース設計の刷新が加速する可能性がある。
pgrust v0.2がリリースされ、OLTP性能でPostgresより30%、ClickBenchでは300倍高速を達成。バッチ処理、演算子融合、SIMDを活用。
pgrust バージョン0.2がリリースされ、前バージョンから10倍の性能向上を達成した。OLTPベンチマークではPostgresより30%高速で、ClickhouseのOLAP向けベンチマーク「ClickBench」ではPostgresの300倍、さらにClickhouse自体をも上回る結果となった。
この高速化の核心はクエリエンジンの再設計であり、単体で300倍のうち約10倍を達成している。主な最適化手法はバッチ処理、演算子融合(operator fusion)、そしてSIMD(単一命令複数データ)の活用だ。
Postgresは1980年代にディスクI/OがボトルネックだったI/O中心の時代に設計された。現在は多くのデータセットがRAMに収まり、NVMeの普及でディスク速度も大幅に向上したため、ボトルネックはCPUとメモリ帯域に移行している。
具体的な比較として、5億件の数値を合計するクエリをPostgresで実行すると約20秒かかるのに対し、Rustの同等コードは358ミリ秒で完了する。pgrust開発チームはロックのオーバーヘッドやPostgresのストレージフォーマット解析コストを削減することで、この差を縮めることに成功した。