- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
抗数据偏斜的高效并行join运算算法研究
摘要:通过分析ABJ+算法和Hybrid hash join算法,并对两个算法进行了结合和改进,提出了一种能克服各种数据偏斜的并行二元连接运算算法,可在不同的数据偏斜情况下启动不同的模块,克服数据偏斜造成的负载不平衡现象。
关键词:并行连接;数据偏斜;并行数据库;ABJ+算法;Hybrid hash join算法
中图分类号:TP301文献标识码:A 文章编号:1009-3044(2008)31-0938-02
A Study on Efficient Parallel Join Algorithms with Anti-skew of Data
LU Shu-ying, ZHU Ping
(Jiangnan Institute of Computing Technology, Wuxi 214083, China)
Abstract: According to analysing the ABJ+algorithms and Hybrid hash join algorithm, and the combination of the two algorithms and improve, and prensents an efficient parallel join algorithm with anti-skew different of data. The algorithm can switch on different modules in the case of data skew and eliminate load unbalances caused by data skew.
Key words: parallel join; data skew; parallel database; ABJ+ algorithms; hybrid hash join algorithm
1 引言
并行数据库以提高性能为主要目标,利用多处理机并行处理查询,明显提高了查询速度、较好地满足了海量信息查询与复杂查询的需求。
硬件结构,数据分布,查询处理等均可影响并行数据库的性能。并行数据库的硬件结构主要有3种,其中SN(无共享)结构由于有较好的线性加速比和线性放大比。所以目前很多大型超立方体机均采用SN结构。SN结构的主要缺点是对各节点处理机的负载不平衡问题非常敏感。在多处理机并行处理同一查询时,查询的响应时间取决于负载最重的处理机的完成时间, 因此各处理机负载不平衡将严重影响系统的性能,如何调整负载就成为提高SN结构性能的重要问题。
由于连接运算出现频率极高又费时,因此并行数据库并行连接运算算法的研究一直十分活跃,其中基于哈希的算法更适合于SN 结构的数据库系统。这类算法的有效性取决于参加连接运算的关系元组在连接属性值上的均匀分布。当连接属性值不满足均匀分布,即出现所谓数据偏斜(data skew)时,就可能会使哈希后的桶大小不均匀,导致处理节点负载的不平衡。
2 基本概念
2.1 初始偏斜
在两个关系并行连接运算的过程中, 数据偏斜随时都有可能出现。在大多数国内外文献中,一般都假设各个关系的属性值是均匀而且独立分布, 由此可认为在每一个处理节点, 参加连接运算的关系的属性值均匀分布。然而实际情况并非都如此, 有一些关系的属性值本来就不是均匀分布的,还有一些关系的属性值开始是均匀分布的,但经过了初始运算如选择运算后, 再参加连接运算时其属性值就可能不是均匀分布。上述这两种情况都是哈希运算之前出现的偏斜, 可称为初始偏斜。
2.2 划分偏斜
数据划分方法:设处理结点的个数为N, 设属性a是R的划分属性,V表示a的值域。给定Hash函数H:V→{0,…,M-1},M≥N, 其中M是Hash 函数对数据划分的桶数。用B(R,a,i)表示编号为i的一桶数据。给定桶分配函数F:{0,…,M-1}→{0,…,N-1}, 设r是R中的任意一个元组, 则H(r[a])表示元组r所在的桶的编号, 而F(H(r[a]))是r所存储的处理结点的编号。
桶偏斜:上述划分方法运用了虚拟处理器的思想,桶就相当于各个虚拟分区。分配到每个桶中的元组数不同,若相差太大,就会发生桶偏斜。但是通常桶的粒度较小,不直接以桶为单位参加连接运算,所以这里的偏斜可通过后面的划分来加以平衡。
划分偏斜:对分配到同一节点的桶,根据内存大小调整为划分,即将几个桶合成一个划分。由于桶偏斜的存在,没有良好的调度方法的话,就有可能进一步使划分中元组数相差过大,产生划分偏斜。
具有初始偏斜的关系可以通过合适的哈希函数而得到均匀
文档评论(0)