中文

GYM:一种 MapReduce 中的多轮连接算法

数据库 2017-01-27 v8

摘要

多轮算法现在广泛应用于分布式数据处理系统,但算法能从增加轮数中获益的程度尚不清楚。本文针对计算 nn 个关系的等值连接问题,回答了一系列轮数下的这一问题。具体而言,给定任意查询 QQ,其宽度为 \w\w,{\em 交集宽度} 为 \iw\iw,输入大小为 IN\mathrm{IN},输出大小为 OUT\mathrm{OUT},以及一个每台机器可用内存为 MM 的机器集群,我们证明:(1) QQ 可在 O(n)O(n) 轮内计算完成,通信代价为 O(n(IN\w+OUT)2M)O(n\frac{(\mathrm{IN}^{\w} + \mathrm{OUT})^2}{M})。(2) QQ 可在 O(log(n))O(\log(n)) 轮内计算完成,通信代价为 O(n(INmax(\w,3\iw)+OUT)2M)O(n\frac{(\mathrm{IN}^{\max(\w, 3\iw)} + \mathrm{OUT})^2}{M})。交集宽度是我们引入的一个关于查询和查询的广义超树分解 (GHDs) 的新概念,用于捕捉 GHDs 中相邻循环组件的连接程度。我们通过引入 Yannakakis 算法的分布式广义版本(称为 GYM)实现了第一个结果。GYM 接受任何宽度为 \w\w、深度为 ddQQ 的 GHD 作为输入,并在 O(d+log(n))O(d + \log(n)) 轮和 O(n(IN\w+OUT)2M)O(n\frac{(\mathrm{IN}^{\w} + \mathrm{OUT})^2}{M}) 的通信代价下计算 QQ。我们通过展示如何构建宽度为 max(\w,3\iw)\max(\w, 3\iw)、深度为 O(log(n))O(\log(n))QQ 的 GHDs 实现了第二个结果。我们描述了另一种构建具有更宽宽度和更浅深度的 GHDs 的技术,展示了在通信和轮数之间可以做出的权衡谱系。

关键词

引用

@article{arxiv.1410.4156,
  title  = {GYM: A Multiround Join Algorithm In MapReduce},
  author = {Foto Afrati and Manas Joglekar and Christopher Ré and Semih Salihoglu and Jeffrey D. Ullman},
  journal= {arXiv preprint arXiv:1410.4156},
  year   = {2017}
}