Skip to main content
QUICK REVIEW

[論文レビュー] Learned Indexes for a Google-scale Disk-based Database

Hussam Abu-Libdeh, Deniz Altınbüken|arXiv (Cornell University)|Dec 23, 2020
Advanced Database Systems and Queries参考文献 13被引用数 14
ひとこと要約

この論文は、GoogleのBigtable—生産スケールで分散処理され、ディスクベースのデータベース—に学習されたインデックスを初めて統合した。著者らは、メモリ内オフセットの代わりにブロック位置を予測するように学習されたインデックスを適応させることで、インデックスサイズの削減、ディスクI/Oの最小化、およびポイント照会では最大38%、スキャンでは最大56%のエンドツーエンドの読み取り遅延とスループットの向上を達成した。主に、ブロック読み込みの削減やより良い圧縮といった二次的効果によるものである。

ABSTRACT

There is great excitement about learned index structures, but understandable skepticism about the practicality of a new method uprooting decades of research on B-Trees. In this paper, we work to remove some of that uncertainty by demonstrating how a learned index can be integrated in a distributed, disk-based database system: Google's Bigtable. We detail several design decisions we made to integrate learned indexes in Bigtable. Our results show that integrating learned index significantly improves the end-to-end read latency and throughput for Bigtable.

研究の動機と目的

  • 学習されたインデックスが、Bigtableのような実世界のディスクベースで分散処理されたデータベースにおいて実用的かどうかを評価すること。
  • 大規模で実際のワークロードを伴う生産システムで測定可能な性能向上を示すことにより、学習されたインデックスに対する懐疑的見解を解消すること。
  • 従来の学習されたインデックス設計の限界、特にディスクベースのシステムとの非互換性とブロックレベルストレージへの対応不足を克服するため、ブロック位置を予測するようにモデルを再設計すること。
  • ポイント照会と範囲スキャンの両方における学習されたインデックスの影響を、遅延、スループット、リソース効率の観点から評価すること。
  • 学習されたインデックスの利点が、単に速い照会を超えて、I/Oの削減、より良いキャッシュ効果、およびインデックスサイズの小型化と圧縮解除操作の減少によるCPU使用量の低減をもたらすことを示すこと。

提案手法

  • 元の学習されたインデックスモデルを、メモリ内オフセットの代わりにブロック番号を予測するように変更し、Bigtableのブロックベースのストレージアーキテクチャとの互換性を確保する。
  • 文字単位の基数変換技術を用いて、文字の位置ごとにその出現範囲(最小/最大ASCII値)に比例する基数を使用して、文字列キーを整数にエンコードする。これにより単調性が保たれ、OLSモデルの訓練が効率的に行える。
  • エンコード済みキー上で通常最小二乗法(OLS)モデルを訓練し、ブロック位置の累積分布関数(CDF)を予測する。これにより、補間を用いた高速なポイント照会が可能になる。
  • 圧縮可能なブロックマッピングテーブルBを構築し、予測されたブロック範囲のディスク上の位置を格納する。これにより、効率的なランダムアクセスが可能になり、キーの格納を排除することでストレージのオーバーヘッドを削減する。
  • 学習されたインデックスをBigtableの既存のSSTableおよびテーブルサーバーのアーキテクチャに統合し、モデルの訓練を書き込みパスから分離することで、書き込みのパフォーマンスへの影響を回避する。
  • より小さなインデックスサイズを活用し、インデックスブロックの読み込み回数を減らし、キャッシュ効率を向上させ、データ取得時の圧縮解除のオーバーヘッドを低減する。

実験結果

リサーチクエスチョン

  • RQ1学習されたインデックスは、Bigtableのような実世界のディスクベースで分散処理されたデータベースシステムにおいて、測定可能なパフォーマンス向上を提供できるか?
  • RQ2学習されたインデックスの統合は、ポイント照問と範囲スキャンの両方におけるエンドツーエンドの読み取り遅延とスループットにどのように影響するか?
  • RQ3元々メモリ内の配列を想定して設計された学習されたインデックスを、ブロックベースでディスクに格納されるシステムに適応させるために、どのようなアーキテクチャ的変更が必要か?
  • RQ4I/Oの削減、より良い圧縮、キャッシュの改善といった二次的効果が、単なる照会速度の向上を超えてパフォーマンス向上にどの程度寄与しているか?
  • RQ5学習されたインデックスの使用は、書き込みパフォーマンスに影響を与えるか?また、モデルの訓練を書き込みパスから分離することで、システムのスループットを維持できるか?

主な発見

  • ポイント照会の99パーセンタイルでは38%、平均では36%の遅延低減が達成され、スキャンに対しても同様の改善が見られた。
  • ポイント照会では99パーセンタイルで54%、平均で55%のスループット向上が達成され、スキャンでは99パーセンタイルで56%、平均で28%の向上が得られた。
  • パフォーマンス向上の主な要因はI/Oの削減—すなわち、より少ないインデックスブロックがアクセスされたこと—であり、これにより圧縮解除のオーバーヘッドが低減され、キャッシュ利用効率が向上した。
  • インデックスサイズが顕著に削減されたため、キャッシュが冷えている状態でも、より少ないディスク読み込みが可能となり、特に尾遅延(tail latency)の改善が顕著に見られた。
  • モデルの訓練を書き込みパスから分離したため、書き込みパフォーマンスに影響がなく、生産システムの安定性が維持された。
  • 異なるキー分布や値サイズの設定に対しても一般化可能であり、継続的な実験において一貫したパフォーマンス向上が観察された。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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