概要
turbopuffer v3 はストレージアーキテクチャを刷新し、検索性能を大幅に向上。 ANNインデックス を主軸とした従来設計から脱却し、柔軟なクエリプランを実現。 ストレージ・書き込み・ベクトル化 の各面でボトルネックを解消。 SQLクエリや多様な検索 への対応力を強化。 今後、 パフォーマンスベンチマーク も公開予定。
turbopuffer v1からv3への進化
- turbopuffer v1 は、IDとベクトルのみで構成されるドキュメント設計
- オブジェクトストレージを真実のソースとし、NVMe SSD/メモリキャッシュで性能を確保
- SPANNからSPFreshへ移行し、インクリメンタルインデックスに対応
- ANN(Approximate Nearest Neighbor)インデックスを主軸としたクラスタリング構造
- v2 で属性フィルタリング・全文検索(BM25)を追加
- 属性値をANNアドレスにマッピングする倒立インデックスを実装
- ドキュメント属性もID・ベクトルと共に保存
- FTS(Full Text Search)では、BM25スコア算出用のメタデータも保持
- v2以降、集計・正規表現・ファジーマッチ・スパースベクトル検索など多様なクエリエンジンを追加
ANNプライマリインデックスの課題
- ストレージ増幅
- マルチベクトルを持つドキュメントでは、非ベクトルデータが複数回保存されるため、ストレージ効率が低下
- 書き込み増幅
- SPFreshによるクラスタ再編成時、関連する全データ・インデックスも移動が必要
- 1つのベクトル更新で数百の属性・インデックスが移動し、書き込み負荷が増大
- ベクトル化の制約
- クエリエンジンは最適なブロックサイズで処理したいが、ANNインデックス構造により制限
- 例:全文検索のポスティングリストも初期はANNクラスタ境界で分割され、効率低下
v3でのアーキテクチャ刷新
- ANNアドレスをプライマリキーとしない 構造への転換
- ドキュメント単位でフラットに管理し、ANNはセカンダリインデックス化
- すべてのクエリプランで最適なストレージ・ブロック設計が可能
- パフォーマンス・スケーラビリティの向上
- ストレージ・書き込み・ベクトル化の各課題を解消
- SQLクエリや複雑な集計処理にも柔軟に対応
- 開発進捗
- v3のCIが100%パスし、今後パフォーマンス最適化へ移行
- ベンチマーク結果も順次公開予定
turbopufferの現状と今後
- 1兆件超のドキュメント管理、毎秒1,000万件超の書き込み、毎秒25,000件超のクエリ処理 を実現
- v3でさらに多様なユースケース・高速検索をサポート
- 今後もパフォーマンス向上・機能拡張を継続予定
まとめ
- turbopuffer v3 は、ベクトル検索だけでなく、 全文検索・属性検索・SQLクエリ まで幅広く高速化
- ストレージ設計の根本的な見直し により、今後の成長と新機能追加の基盤を構築
- パフォーマンス改善の進捗も積極的に公開予定
- Cursor・Notion・Linear など著名サービスでの実績
- turbopufferは、今後も信頼できる 次世代検索基盤 として進化