pg_sorted_heap: ソート済みヒープストレージとベクトル検索のためのPostgreSQLエクステンション
主キーを介して物理的なデータ順序を維持するカスタムテーブルアクセスメソッドを導入。類似性検索を最適化するためのネイティブベクトル型用HNSW索引サポートを実装。
運用中pg_sorted_heap
長年、PostgreSQLはストレージにヒープを使用し、順序付けはインデックスに依存してきました。pg_sorted_heapは、物理的にデータを編成するテーブルアクセスメソッドを導入することで、この従来の方法に挑戦します。主キーとゾーンマップの刈り込みを活用することで、範囲スキャンと順序付き取得のI/Oオーバーヘッドを効果的に削減し、テーブル自体をクラスター化された構造として扱います。これは、範囲ベースのクエリが支配的で、インデックスの肥大化が懸念されるワークロードにとって実用的なアプローチです。
ストレージを超えて、このエクステンションはPostgresをAIスタックにさらに押し進めます。組み込みベクトル型用のHNSW(階層的ナビゲート可能な小世界)の統合により、最新のLLMアプリケーションに必要な高性能な近似最近傍(ANN)検索を提供します。最も野心的な追加機能は、GraphRAGツールです。データベース内で直接グラフベースの検索拡張生成を可能にすることで、リレーショナルストアと別のグラフデータベース間のデータ同期の典型的な「アーキテクチャ税」を排除します。
技術的な観点から、その強みは統合にあります。弱点は、カスタムアクセスメソッドの固有の複雑さです。物理的な順序を維持することは、挿入と更新時に書き込みペナルティ(断片化)を伴い、データベース管理者が管理する必要があります。しかし、断片化されたベクトルDBとグラフDBのスタックの管理に疲れたエンジニアにとって、このトレードオフは魅力的です。
これは、待ち時間と運用オーバーヘッドを最小限に抑えたいRAGパイプラインを構築するデータエンジニア向けの高付加価値ツールです。リレーショナルメタデータ、ベクトル埋め込み、グラフ関係間の緊密な統合が必要なアプリケーションの場合、pg_sorted_heapはPostgresをストレージ層から包括的な検索エンジンに変換します。