ベクターデータ検索は、機械學習や自然言語処理など、高次元データの類似性検索に不可欠な技術として注目されています。Cassandra 5では、ベクターデータの検索性能を向上させるため、Storage Attached IndexやJVectorなどの新機能が導入されました。本記事では、これらの技術の特徴と、パフォーマンスチューニングの実験結果を解説します。
ベクターデータは、対象の抽象的な屬性を浮動小數點數の配列として表現します。このベクターは、ベクタースペースに配置され、関連性の高いデータは空間的に近接し、関連性の低いデータは遠くに位置します。距離計算には、コサイン類似度、ドット積類似度、ユークリッド距離などの手法が用いられます。ベクターデータ検索は、類似データの効率的な検索を実現するための技術です。
Cassandra 5では、任意の列に対してインデックスを構築できるStorage Attached Indexが導入されました。従來の二次インデックスに比べて、処理速度と効率が向上し、多列インデックスのサポートも可能になりました。この機能により、ベクターデータの検索性能が大幅に改善されています。
JVectorは、HNSW(Hierarchical Navigable Small World)アルゴリズムを採用した近似最近隣検索を実現しています。このアルゴリズムは、単層グラフ構造を用いて、長辺を減らすことでディスクI/Oを削減し、並列更新をサポートしています。結果として、インデックスの構築速度が速く、メモリ使用量も少ないという特徴を持っています。
テストは、DS8 v4s(8コア/64GBメモリ/32GB RAM)のマシンで行われ、3ノードのクラスター構成で実施されました。この環境では、さまざまなパラメータを変更してパフォーマンスを評価しました。
Cassandra 5は現在、GA(一般利用開始)前のベータフェーズにあり、開発チームは生産環境での運用に向けた安定性を確保するため、ソフトウェアの細かい問題修正に取り組んでいます。
Cassandra 5のベクターデータ検索は、既存のソリューションよりも優れたパフォーマンスを示しました。Level Compaction Strategyの採用と適切なスレッド數設定により、パフォーマンスを最大化することが可能です。今後のバージョンでは、クエリコストの最適化と生産環境の安定性がさらに向上する予定です。