🛠Tools🔥🔥

ベクターデータベース turbopuffer、ストレージ構造を刷新する v3 を開発──ANN インデックスを主から従へ変更

turbopuffer v3 では ANN インデックスをプライマリからセカンダリへ降格させ、ストレージ・書き込み増幅を解消して SQL クエリへの対応を加速させる。
リリース: 2026-09-30 · 読了 3 分

記事の要約

1. 核心(What)

  • turbopuffer は v3 においてドキュメントとインデックスのレイアウト、書き込み、コンパクション、クエリ処理の仕組みを刷新する
  • ANN ベクターインデックスをプライマリからセカンダリインデックスへ降格させる設計変更を行う
  • 従来の ANN プライマリ構造で発生していたストレージ増幅と書き込み増幅の課題を解消する
  • 将来的にはより多くの SQL クエリを turbopuffer 上で高速に処理するための基盤を構築する

2. 影響(Why)

  • ストレージ増幅と書き込み増幅の限界: ドキュメント全体が ANN アドレスをキーに保持されていたため、ベクトル更新時に数十・数百の属性やインデックスが連鎖的に移動し、書き込みスループットが頭打ちになっていた。
  • クエリのベクトル化制約の打破: ANN クラスターサイズ(100〜200ドキュメント)に縛られていたブロックサイズを解放し、CPU パイプラインを飽和させる現代的なバッチ処理や SIMD 最適化を可能にする。

3. 根拠・詳細(How)

  • クラスタリング基盤の変遷: v1 では SPANN からインクリメンタルインデックス用の SPFresh へ移行し、ClusterId と LocalId を組み合わせた ANN アドレスをプライマリキーとしてキーバリューストア上に実装していた。
  • 全文検索と属性インデックスの分離: v2 の FTS(全文検索)ではポスティングリストを固定 256 ブロックに分割することで 10 倍の小型化と最大 20 倍の高速化を達成しており、v3 ではこの分離思想をストレージ全体へ拡張する。

4. 展望・課題(Next)

  • v3 アーキテクチャの順次展開: 今後は新しいプライマリインデックスへの移行プロセスや、各種クエリプランにおける具体的なパフォーマンス改善の成果が順次公開される予定。