SIGMOD 2011 论文导读(2011.7.7最后更新)

本博文记录我读过的SIGMOD 2011论文,一方面与大家分享,另一方面方便自己以后查找。

1) Processing Theta-Joins using MapReduce
Alper Okcan, Northeastern University; Mirek Riedewald*, Northeastern University

Theta-Join是Equijoin的超集(http://en.wikipedia.org/wiki/Relational_algebra#.CE.B8-join_and_equijoin)。简单来说,Equijoin的连接谓词是=,而Theta-Join的谓词则可以是{=,<,>,≤,≥}任一。使用MapReduce进行Equijoin很简单,而实现完全的Theta-Join支持是有难度的(因为<,>,≤,≥这样的偏序谓词与=有很大区别)。文章1) 提出一个基于reducer的代价模型和一个join模型,这两个模型简化了使用MapReducee实现Theta-Join算法的工作 2) 提出一种使用MapReduce进行Theta-Join的随机算法 3) 在2)的基础上针对一些常见输入给出优化。

Citations: [6] MapReduce原论文 [4][5][14][16][20] MapReduce Equijoin [19] MapReduce Non-equijoin [10] 并行join算法调研 [18] 一种并行Non-equijoin算法 (后面一段相关工作关于偏斜避免,略) 

因为和MapReduce、join有关所以扫了一下,但是Theta-Join现在不需要,因此没有细看。

2) Design and Evaluation of Main Memory Hash Join Algorithms for Multi-core CPUs
Spyros Blanas, University of Wisconsin; Yinan Li*, University of Wisconsin; Jignesh Patel, University of Wisconsin

文章比较了几种Hash Join算法,得出了基于共享式hash表的Hash Join算法是多核并行Hash Join算法中效率最高算法的结论。文章第3节可以当做很好的Hash Join教程,Hash Join的(Partition)(划分,partition不是必须的)-Build(建立hash表)-Probe(查hash表连接)三阶段讲得很透。related work里对hash join研究历史介绍详尽,非常适合刚进入相关领域研究的人。

Citations: [7] 主存数据库实现(SIGMOD 84,其中有hash join算法) [16] 利用cache处理关系操作(VLDB 94,包括hash join) [1][12] 对现代DBMS时间开销的构成进行仔细分析 [13] 一种基于主存的hash join优化 [15] 一种hash join优化,利用了cuckoo hashing算法(见14)与SIMD指令集 [9] 多线程并行hash join [10] hash算法在SQL Server中的应用 [8] 并行join中偏斜避免

我自己在研究RDF数据库时遇到的问题就是基于triple的存储在处理查询时需要进行大量的join操作。解决这个问题的一个方法是尽量减少join操作(通过不同的RDF存储模型,增加一些索引、缓存机制),另一个方法就是优化join算法。所以我对join算法优化相关的论文总是比较敏感。

Updated 2011.7.7 偏斜避免是并行join算法中的一个重要问题,1) 2)均有涉及。不过我还不够了解这方面的知识,有必要看一些相关文献。

你可能感兴趣的:(更新)