[論文レビュー] Towards Zero-Overhead Adaptive Indexing in Hadoop
本論文では、Hadoopにおけるゼロオーバーヘッドの適応的インデキシングシステム、LIAH(Lazy Indexing and Adaptivity in Hadoop)を提案する。LIAHは、MapReduceジョブ実行の副産物として、HDFSデータブロックにクラスタリングインデックスを段階的に構築する。既存のI/Oおよび計算にインデックス作成を乗せることで、追加のI/Oやメモリコストを一切発生させず、標準Hadoopに比べ最大52倍の高速化を達成し、最小限のオーバーヘッドで4回のジョブで完全なインデックスに収束する。特に初期クエリにおいて顕著な恩恵をもたらす。
Several research works have focused on supporting index access in MapReduce systems. These works have allowed users to significantly speed up selective MapReduce jobs by orders of magnitude. However, all these proposals require users to create indexes upfront, which might be a difficult task in certain applications (such as in scientific and social applications) where workloads are evolving or hard to predict. To overcome this problem, we propose LIAH (Lazy Indexing and Adaptivity in Hadoop), a parallel, adaptive approach for indexing at minimal costs for MapReduce systems. The main idea of LIAH is to automatically and incrementally adapt to users' workloads by creating clustered indexes on HDFS data blocks as a byproduct of executing MapReduce jobs. Besides distributing indexing efforts over multiple computing nodes, LIAH also parallelises indexing with both map tasks computation and disk I/O. All this without any additional data copy in main memory and with minimal synchronisation. The beauty of LIAH is that it piggybacks index creation on map tasks, which read relevant data from disk to main memory anyways. Hence, LIAH does not introduce any additional read I/O-costs and exploit free CPU cycles. As a result and in contrast to existing adaptive indexing works, LIAH has a very low (or invisible) indexing overhead, usually for the very first job. Still, LIAH can quickly converge to a complete index, i.e. all HDFS data blocks are indexed. Especially, LIAH can trade early job runtime improvements with fast complete index convergence. We compare LIAH with HAIL, a state-of-the-art indexing technique, as well as with standard Hadoop with respect to indexing overhead and workload performance.
研究の動機と目的
- 予測不能または変化するワークロードに対して不切な事前定義インデックスが課すHadoopにおける静的インデキシングの制限を解消すること。
- アップロード時におけるワークロード知識を必要とするHAILのような従来のインデキシング手法に伴う高い初期コストと柔軟性の欠如を克服すること。
- ユーザーの干渉なしに自動的かつ段階的に適応的インデックス作成が可能であり、完全なインデックスに素早く収束すること。
- MapReduceジョブ実行中の空きCPUサイクルと既存のI/O操作を活用することで、インデキシングのオーバーヘッドを最小限に抑えること。
- 見えないおよび遅延投影技術を用いて、入力データの属性の部分集合をクエリする場合でも、効率的なインデキシングを可能にすること。
提案手法
- LIAHは、MapReduceジョブ実行中にHDFSデータブロックにクラスタリングインデックスを構築し、既存のデータ読み込みと計算にインデックス作成を乗せることで実現する。
- インデキシングはノード間で並列化され、マップタスクの計算とディスクI/Oとインタリーブされ、追加のI/Oやメモリオーバーヘッドを回避する。
- 早期のインデックスで得られたパフォーマンス利点を再利用するエージャー適応的インデキシングを採用することで、後続のインデキシング作業を高速化する。
- 見えない投影を導入し、完全なタプルを物性化せずに部分的属性の投影上でインデックス作成が可能となる。
- 遅延投影により、必要な場合にのみ完全な属性再構築が延期され、インデキシング中の計算コストが削減される。
- LIAHは、ジョブあたりのインデックス化対象データブロック数を動的に制御し、インデキシング作業とアプリケーションのパフォーマンス要件のバランスを取る。
実験結果
リサーチクエスチョン
- RQ1MapReduceシステムにおいて、追加のI/Oやメモリコストなしにインデキシングが可能か?
- RQ2特に予測不能または変化するアクセスパターンを示すワークロードにおいて、Hadoopにおける適応的インデキシングはどのように効率的かつスケーラブルに実現できるか?
- RQ3ジョブ実行の通常処理内にインデックス作成をどれほど隠すことができるか、ジョブパフォーマンスの劣化を引き起こさずに?
- RQ4早期のパフォーマンス向上とインデックス収束速度の両立は、どのようにバランスを取れるか?
- RQ5入力データの属性の部分集合をクエリする場合でも、効率的なインデキシングが達成可能か?
主な発見
- LIAHは、選択的MapReduceワークロードにおいて、標準Hadoopに比べ最大52倍、HAILに比べ最大24倍の高速化を達成した。
- 最初のジョブにおけるインデキシングオーバーヘッドはHAILよりわずか11%上回るが、以降のジョブでは極めて低い水準(例:10%のオファー率におけるUserVisitsでは1%)に低下する。
- 25%のオファー率を使用すると、LIAHは4回のMapReduceジョブで完全なインデックスに収束し、10%のオファー率では10ジョブで収束する。
- 見えない投影技術は、低選択性クエリに対しても、Syntheticデータセットで平均6%のわずかなオーバーヘッドしか発生させない。
- LIAHは、100%オファー率の最初のクエリを除き、ほぼすべてのシナリオでHadoopを大きく上回るパフォーマンスを示した。
- システムはハードウェアに良好にスケーリングし、新しいCPUでより高いパフォーマンスを示し、設定可能なオファー率により、インデキシング作業とアプリケーション要件のバランスを効果的に取る。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。