Skip to main content
QUICK REVIEW

[論文レビュー] RadixSpline: A Single-Pass Learned Index

Andreas Kipf, Ryan Marcus|arXiv (Cornell University)|Apr 30, 2020
Advanced Data Storage Technologies参考文献 30被引用数 26
ひとこと要約

RadixSpline (RS) は、累積分布関数 (CDF) に上限付き誤差で線形スプラインをフィッティングする二段階アプローチを用いて、ソート済みデータを一回のパスで効率的に構築するシングルパス学習インデックスである。また、高速ルーティングのためのレディックステーブルを用いる。RMI や他の最先端の学習インデックスと比較して、競争力のあるサイズと照合性能を達成しており、チューニング可能なハイパーパrameterはわずか2つで、実装の複雑さも最小限に抑えられる。

ABSTRACT

Recent research has shown that learned models can outperform state-of-the-art index structures in size and lookup performance. While this is a very promising result, existing learned structures are often cumbersome to implement and are slow to build. In fact, most approaches that we are aware of require multiple training passes over the data. We introduce RadixSpline (RS), a learned index that can be built in a single pass over the data and is competitive with state-of-the-art learned index models, like RMI, in size and lookup performance. We evaluate RS using the SOSD benchmark and show that it achieves competitive results on all datasets, despite the fact that it only has two parameters.

研究の動機と目的

  • ソート済みデータに対して一回のパスで構築可能な学習インデックス構造を設計すること。これにより、既存の学習インデックスが抱える複数パス学習のボトル neck を克服する。
  • 最小限のメモリ使用量と低遅延を実現しつつ、効率的な等価照合および範囲照合(例:下限照合)をサポートすること。
  • ハイパーパrameterのチューニングを簡素化するために、パラメータ数をわずか2つに削減すること:スプライン誤差とレディックステーブルサイズ。
  • 実際のシステム、特にマージ操作中にインデックス再構築が発生する LSMツリーにおける適用可能性を評価すること。

提案手法

  • ソート済みデータの累積分布関数 (CDF) に、ユーザーが定義したスプライン誤差パラメータで制限された各セグメントの最大誤差を満たすように、区分線形スプラインをフィッティングする。
  • キーの最上位ビット(例:20ビット)を用いて、共通接頭辞ビットを除いた平坦なレディックステーブルを構築し、関連するスプラインセグメントへの高速ルーティングを可能にする。
  • スプラインのフィッティングとレディックステーブルの構築を、ソート済みデータを一回のパスで処理する形で実行し、要素1つあたり定数時間の処理を実現する。
  • 選択されたスプラインセグメント内で二分探索を実行して、正確なキーを特定する。これにより、照合遅延を最小限に抑える。
  • 従来の B+tree や ART インデックスとの比較のため、ストライドベースのインデックス戦略(例:32番目のキーごと)を用いる。
  • 実世界のデータセットを用いて SOSD ベンチマークを実行し、構築時間、照合遅延、インデックスサイズを測定する。

実験結果

リサーチクエスチョン

  • RQ1上限付き誤差を満たしつつ、ソート済みデータに対して一回のパスで構築可能な学習インデックスは、競争力のあるサイズと照合性能を維持できるか?
  • RQ2RMI や他の複数パス学習インデックスと比較して、シングルパス学習インデックスのインデックスサイズとクエリ遅延のパフォーマンスはどの程度か?
  • RQ3スプライン誤差とレディックスサイズの2つのハイパーパラメータを、メモリ使用量と照合速度のトレードオフにどの程度活用できるか?
  • RQ4RadixSpline は、LSMツリーのアーキテクチャに効果的に統合可能か?これにより、最小限の書き込みオーバーヘッドで読み取りパフォーマンスが向上するか?
  • RQ5データの偏りや外れ値の多い分布において、他の学習インデックス構造と比較して RadixSpline のパフォーマンスはどの程度か?

主な発見

  • RadixSpline は、RMI モデルと同等の照合遅延を達成しており、すべてのデータセットで平均遅延が 800ns 未満である。
  • RadixSpline のインデックスサイズは、圧縮されていないキーのサイズの約 6.6%(2億個の64ビットキーで100 MiB)であり、RMI と同等で、従来のインデックスと比べて顕著に小さい。
  • RadixSpline の構築時間は、ART や B+tree とほぼ同等に速く、RMI よりもはるかに速く、RMI は複数回のトレーニングパスを必要とする。
  • RocksDB を用いた LSMツリー実験では、B+tree を RadixSpline に置き換えることで、平均読み取り時間は20%以上短縮され、合計実行時間は 712 秒から 521 秒に低下し、メモリ使用量は 45% 減少した。
  • スプライン誤差を 2 から 16、レディックスビット数を 25 から 20 に変更することで、メモリ使用量は 99.9%(約650 MiB から約200 MiB)削減され、face データセットではパフォーマンス劣化はたった 11.5% にとどまった。
  • シングルパス構築により、LSMツリーのマージプロセスへの効率的な統合が可能となり、再構築が既に発生しているため、遅延オーバーヘッドは無視できるほど小さい。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。