[论文解读] Towards Zero-Overhead Adaptive Indexing in Hadoop
本文提出 LIAH(Hadoop 中的懒惰索引与自适应机制),一种零开销自适应索引系统,该系统在 MapReduce 作业执行过程中作为 I/O 和计算的副产品,逐步构建 HDFS 数据块上的聚簇索引。通过将索引创建与现有 I/O 和计算操作合并,LIAH 不引入额外的 I/O 或内存开销,相较于标准 Hadoop 最快可提升 52 倍性能,并且在仅四次作业内即可收敛至完整索引,且开销极低——尤其对早期查询表现优异。
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 数据块创建聚簇索引,将索引构建与现有数据读取和计算操作合并。
- 索引过程在各节点间并行执行,并与 map 任务计算和磁盘 I/O 交错进行,避免引入额外的 I/O 或内存开销。
- 系统采用积极的自适应索引机制,复用早期索引带来的性能收益,以加速后续索引构建。
- 引入不可见投影技术,允许在不物化完整元组的情况下对部分属性投影进行索引创建。
- 懒惰投影将完整属性重构推迟到必要时才执行,从而降低索引过程中的计算成本。
- LIAH 动态控制每个作业索引的数据块数量,以在索引努力与应用性能需求之间实现平衡。
实验结果
研究问题
- RQ1是否可以在 MapReduce 系统中实现零额外 I/O 或内存开销的索引?
- RQ2如何在 Hadoop 中实现高效且可扩展的自适应索引,特别是针对访问模式不可预测或动态变化的工作负载?
- RQ3在不降低作业性能的前提下,索引创建能在多大程度上隐藏在 MapReduce 作业的正常执行过程中?
- RQ4系统如何在早期性能提升与索引收敛速度之间取得平衡?
- RQ5当查询仅投影输入数据中的部分属性时,是否仍能实现高效索引?
主要发现
- LIAH 在选择性 MapReduce 工作负载上,相较于标准 Hadoop 最快可提升 52 倍,相较于 HAIL 最快可提升 24 倍。
- 首次作业的索引开销仅比 HAIL 高 11%,后续作业的开销降至可忽略水平(例如,在 10% 提供率下,UserVisits 数据集的开销仅为 1%)。
- 当提供率为 25% 时,LIAH 仅需四次 MapReduce 作业即可收敛至完整索引;在 10% 提供率下,需 10 次作业。
- 不可见投影技术在合成数据集上仅带来 6% 的平均开销,即使在低选择性查询下也微乎其微。
- 在几乎所有场景下,LIAH 均显著优于 Hadoop,仅在提供率为 100% 的首次查询中,Hadoop 略快。
- 系统在硬件扩展方面表现良好,新 CPU 上性能进一步提升,并通过可配置的提供率有效平衡了索引努力与应用需求。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。