1 / 22

第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯 · 诺依曼计

Q. 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯 · 诺依曼计 算机的 DBMS 已经难以适应迅速增长的性能要求。并行计算机 系统的出现为高性能 DBMS 的实现带来了希望。 以并行计算机 系统为基础的数据库系统称为并行数据库系统。在具有较多处 理器的并行计算机上建立的数据库系统有可能成为下一代的高 性能数据库系统。 本章介绍目前该领域关系数据库主要研究的 三方面工作:  数据的划分及其在多处理器或多 磁盘之间的分布

tod
Télécharger la présentation

第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯 · 诺依曼计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Q 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及DBMS的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯·诺依曼计 算机的DBMS已经难以适应迅速增长的性能要求。并行计算机 系统的出现为高性能DBMS的实现带来了希望。以并行计算机 系统为基础的数据库系统称为并行数据库系统。在具有较多处 理器的并行计算机上建立的数据库系统有可能成为下一代的高 性能数据库系统。本章介绍目前该领域关系数据库主要研究的 三方面工作: 数据的划分及其在多处理器或多 磁盘之间的分布 算法设计和实现 查询优化 第一节 支持并行数据库的并行结构 第二节 关系数据库系统的固有并行性 第三节 关系查询的并行数据流方法 第四节 并行数据库的物理组织 第五节 并行数据操作算法 第六节 查询优化技术

  2. Q1 第一节 支持并行数据库的并行结构 并行数据库系统的研究以三种并行计算结构为基础: (1)共享主存储器结构(Shared Memory,缩写为SM) 多个处理机通过高速通信网络连接共享主存,每个处理机 可直接存取若干个磁盘存储器。 (2)共享磁盘结构(Shared Disk,缩写为SD) 多个有独立主存的处理机通过高速通信网络连接磁盘存储 器。每个处理机可直接存取任意磁盘存储器。 (3)无共享资源结构(Shared Nothing,缩写为SN) 多个有独立主存和磁盘存储器的处理机通过高速通信网络 互连。机群并行计算环境实际上是一种典型的SN结构。 1986年stonebraker提出,SN结构是支持并行数据库系统的最 好的并行结构,这观点已经得到普遍接受。它具有如下优点: 共享资源最小化减少了由资源竞争带来的系统干扰; 任意增加处理机而不会增加机间干扰; 查询过程的网络通信量最小。 本章以SN并行计算结构为基础。 接下页

  3. Q11 三种并行计算结构的示意图 处理机 处理机 处理机 共享主存结构SM [例] IBM/370多处理机系统, VAX多处理机系统,SEQUENT系统 高速通信网络 共享存储器 磁盘 磁盘 磁盘 高速通信网络 处理机 处理机 处理机 处理机 处理机 处理机 存储器 存储器 存储器 存储器 存储器 存储器 磁盘 磁盘 磁盘 高速通信网络 无共享结构SN [例] NCUBE系统,TERADATA系统, TANDEM系统,VAXcluster系统 磁盘 磁盘 磁盘 共享磁盘结构SD [例] IBM的SYSPLEX系统

  4. 第二节 关系数据库系统的固有并行性 关系查询由若干个基本数据操作组成。这些数据操作 与关系集合一起形成了一个关系代数系统。由于关系 代数的封闭性和数据操作的相对独立性,关系查询具 有如下三种固有并行性: 1.数据操作间的流水并行性(pipelining parallelism) 例1 对N个关系Ri依次先进行选择操作然后进行投影操作. i<N, Ri+1与Ri可以并发进行。属于流水并行性。 2.数据操作间的独立并行性(inter_operator parallelism) 例2 操作1:R1=A,BR 操作2:S1=A,CS 操作3:T= R1S1 操作1和操作2可以并发进行。属于独立并行性。 3.单数据操作内的并行性(intra_operator parallelism) 例2中,操作1和2之间有独立并行性。 (操作1,操作2)与操作3之间有流水并行性。 例2的综合操作是一个可并行执行的操作。 本节给出这三种并行性的严格定义。这三种并行性为建立并 行数据库系统提供了有利的条件。 Q2 接下页

  5. Q21 设(,R)是关系代数系统,是操作集合,R是关系集合,数据库查 询是(,R)上的代数表达式。设op, input(op)R和output(op)R 分别表示op的输入输出关系。 [定义1]设B=(W,R,S)是一个主存缓冲区,其中S是用于存储数据的 队列,W是写指针,R是读指针,W和R的初始值皆为空。 1.操作produce(X,B,k)定义如下: if (S中可用空间<k) then 等待S可用空间k; 在X中提取k个数据写到S的第W到第W+k-1单元; 调整读写指针R和W; 2.操作consume(X,B,k)定义如下: if (S中数据个数<k) then 等待S数据个数k; 从S读出第R到R+K-1单元的数据传送到X; 调整读写指针R和W; 接下页

  6. Q22 [定义2] 设OP1,OP2. 若output(op1)input(op2)空集, 则称OP2直接依赖OP, 若两个数据操作无依赖关系,则称它们互相独立。 op1 op2 op1 [定义3]若OP1,OP2相互独立, 则称之为可独立并行执行, 在此情况下OP1和OP2可各分配一个处理机同时执行。 op2 接下页

  7. Q23 [定义4]设OP1,OP2,B=(W,R,S)是一个主存缓冲区. 若OP1含有produce(output(op1),B,k)操作, OP2含有consume(input(op2),B ,k)操作, 则称OP2在缓冲区B上以流水线方式依赖于OP1 写 S 读 op1 op2 [定义5]设OP1,OP2. 若OP2在缓冲区B上以流水线方式依赖于OP1, 则称两操作可以按流水线方式并行操作。 在此情况下OP1的输出是OP2的输入,若各分配一个处理机, 则它们在OP1产生第一个输出后即可并行运行。 [定义6] 设OP.若OP可分为多个可独立并行执行 或按流水线方式并行执行的子操作,则称之为可并 行执行的操作。此时数据操作可由多处理器并发执行。

  8. Q3 第三节 关系查询的并行数据流方法 并行数据流法使用传统的顺序数据操作算法实现关系查询的并 行执行,实现关系数据库系统的三种固有并行性。这些方法有 两种形式:简单并行数据流方法和基于数据分布的并行数据流 方法。已经被某些并行数据库原型系统使用。 一.简单并行数据流法的步骤 1.由查询语句产生数据流图; 2.为数据流图的数据操作分配处理机; 3.协调各个处理机,调用顺序 数据操作算法,完成查询。 这种方法可以有效地发 挥关系数据库查询的独 立并行性和流水线并行 性,但由于关系数据没 有划分,故难以实现单 关系操作的并行性,可 用下边的方法解决。 C insert into C select * from A,B where A.x=B.y 3 插入 insert 流水并行 2 连接 join 流水并行 1a 1b 投影 选择 投影 选择 独立并行 Scan A Scan B A.x B.y 接下页

  9. Q31 • 基于数据划分的并行数据流法(PPDA) • 特点:1.将关系划分为多个子集合存放在不同磁盘。 • 2.除查询运行器外还引入操作:合并merge和分解split • 例:关系A分三处存放; 关系B分两处存放,结果C分三处存放。 • 下边是并行处理Ax=yB的过程。其中有五个原始元组扫描操 • 作、三个连接操作和三个插入操作,均由相应处理机负责。 • 第一步:扫描(scan)A、B分布的元组,用投影操作取出所需属性, • 用选择操作按连接属性的分段区间把元组分配(spllit)到 • 适当的的连接处理机。连接操作前预先合并(merge)各路 • 输入的元组。各关系子集采用独立并行方式处理。 • 第二步:三个连接处理机以独立并行方式实现连接操作。 • 第二步:每个连接处理机的输出对最后结果C的 • 三个存储地的插入处理机作元组分配。 • 这同样需要经过split和merge的预处理, • 才能完成C的本地插入操作。 • 这种基于数据划分的算法请参考下页的示意图。 insert into C select * from A,B where A.x=B.y 接下页

  10. Q32 关系C存放三处 C3 C1 C2 独立并行 本地插入操作 insert2 insert3 insert1 流水线并行 合并各路记录 merge2 merge3 merge1 按结果存储 地分配元组 分配到插入器 split2 split3 split1 join2 join3 独立并行 join1 连接AB 流水线并行 合并各路记录 merge5 merge8 merge9 merge4 merge6 merge7 按连接属性的 分段分配元组 split5 split7 split8 split6 分配到连接器 split4 独立并行 scan2 scan4 scan5 scan3 投影选择 scan1 A1 A2 A3 B1 B2 关系A存放三处 关系B存放两处

  11. Q4 第四节 并行数据库的物理组织 并行数据库物理组织的核心问题是关系的划分与分布问题。 即如何把一个关系划分为子集、如何把这些子集分布到多 个处理结点,才能使查询时间最小?以下我们把关系的划 分与分布简称为数据划分。数据划分的目的是把关系的划 分子集均匀地分布到多个处理结点,使得在查询处理过程 中系统的并行性能得到充分的发挥。 下边介绍两种数据划分技术: 一 一维数据划分 按某一个属性(称为划分属性)的值划分整个关系。 支持在关系划分属性上具有条件谓词的数据查询。 二 多维数据划分方法. 可支持在非划分属性上的查询.

  12. 一维数据划分:这种方法的特点是按某一个属性一维数据划分:这种方法的特点是按某一个属性 • (称为划分属性)的值划分整个关系。 • Round-Robin划分方法: • 这种划分方法按序号把关系元组均匀分配到N个处理结点。 • 处理结点号=元组序号 mod N • 此法适合于大数据量查询,不能有效支持具有低选择性谓词的查 • 询,因这种查询需要启动所有的处理结点,但仅存取很少元组。 • 故该划分方法使许多处理结点的操作变得无意义。 • 见下例,查询工作证号=‘135415’的员工资料。该查询将启动全体 • 处理结点。查询结果不多于一个。许多处理结点的操作是无意义的。 Q41a 高 速 通 信 网 络 处理结点 存放关系R的第001-099号元组 处理结点 存放关系R的第100-199号元组 处理结点 存放关系R的第200-299号元组 接下页

  13. 2 HASH划分方法: 该方法定义一个把划分属性映射到处理结点的HASH函数H。 处理结点号=H(元组的划分属性值), 把元组存储到对应的处理结点上。此法适于大数据量查询和划 分属性上具有低选择性谓词的操作,也适于进行划分属性上的 连接操作。缺点是易引起数据不均匀。见下例,设工作证号是 划分属性。查询身份证号=‘123456821015001’的员工资料。该 查询仅启动一个处理结点。容易理解,数据分布可能不均匀。 Q41b 高 速 通 信 网 络 处理结点 存放身份证号的Hash值为0的全体元组 接下页 处理结点 存放身份证号的Hash值为1的全体元组 处理结点 存放身份证号的Hash值为2的全体元组 若两个关系都采取相同的HASH划分方法,则分布结构适合于进行 在划分属性上的连接操作。因为连接属性等值的元组安排在相同的 处理结点,所以连接操作可以在所有处理结点独立并行地进行。

  14. RANGE划分方法:将划分属性的值域分为N段。按划分属RANGE划分方法:将划分属性的值域分为N段。按划分属 • 性值所属的段号(1~N)把关系的全体元组分布到N个处理结点。 • 例如把公民每隔十岁拨为一个年龄组,存放在一个处理结点。 • 此法比HASM法多了一个优点:支持划分属性上的区域查询。 • 缺点也是容易引起数据分布不均匀。 Q41c 高 速 通 信 网 络 处理结点 存放出生日期在70-79年的全体元组 存放出生日期在80-89年的全体元组 处理结点 存放出生日期在90-99年的全体元组 处理结点 划分粒度小,使处理结点多,有利于那些消耗大量系统资源的查询, 使之提高响应速度;划分粒度大,使处理结点少,有利于那些消耗 较少系统资源的查询,使之节省系统开销。上述各划分方法的共同 缺点是划分粒度固定不变。这导致平均查询效率较低。 接下页

  15. Q41d 4 Hybrid-Range划分方法 设FC是结点元组数,该法在Range法基础上增加优化FC的 环节。目的是使得资源需求低的查询启动较少的处理结点, 而资源需求高的查询启动较多的处理结点。设关系R有n个 查询Qi (i=1..n),查询Qi的处理器时间是CPUi,磁盘存取时 间是DISKi,通信时间是NETi,处理的元组数是Ti,执行频 率是Fi,每增加一个处理器的额外的时间开销是CP. 于是使用M个处理结点进行关系R的查询,平均响应时间是 RT(M)= i=1..n(CPUi+DISKi+NETi)Fi/M+M·CP 令上述函数的一阶导数为零,可求得使RT(M)最小的M: M= [ i=1..n(CPUi+DISKi+NETi)Fi/CP]1/2 此外可求得每个处理结点的平均元组数FC=(i=1..n TiFi)/M 上述四种方法都是一维划分。缺点是:不能有效地支持 在关系的非划分属性上进行具有条件谓词的数据查询。因为 这种查询必须送到所有处理结点。例如若把公民资料按年龄 组别分布到各处理结点,则博士收入统计的小范围查询也必 须抵达所有处理结点。这种情况可用多维划分方法解决。

  16. Q42 • 多维数据划分方法(CMD) • 该方法可支持在非划分属性上的查询。下边用简例说明。 • 设调整因子n=2,处理结点数N=4,结点号是0-3。关系R有d=2个 • 属性即A和B,每属性称作‘维’。对每维值域排序后等分Nn=8段, • 序号0-7。设关系R均匀分布。d=2个属性的段构成(Nn)d=64个笛卡 儿乘积,用段号超方体表示,例如属性 A第6段和属性B第3段的笛卡儿乘积用 超方体(6,3)表示。超方体(i,j)映射到节 点号k的公式这里取为k=(i+j) mod N, 例如结点0存放16个超方体00,04,13,22, 31,40,17,26,35,44,53,62,71,57,66,75;类 似可列出其它三个结点存放的超方体集。 调整因子n的作用是使划分后的每个超 方体所包含的R元组可装入一个磁盘页。 CMD划分的关系是部分排序的,即超方 体内未排序,但全体超方体沿所有维是 排序的。使SORT和JOIN操作效率较高。 属性B的段号 0 1 2 3 4 5 6 7 7 3 0 1 2 3 0 1 2 6 2 3 0 1 2 3 0 1 5 1 2 3 0 1 2 3 0 4 0 1 2 3 0 1 2 3 3 3 0 1 2 3 0 1 2 2 2 3 0 1 2 3 0 1 1 1 2 3 0 1 2 3 0 0 0 1 2 3 0 1 2 3 属性A的段号 结点号0-3

  17. 第五节 并行数据操作算法 为了实现查询的并行处理,前述的并行数据流法使用传统顺序 数据操作算法。本节介绍另一种方法-并行数据操作算法。这 类算法可以更充分发挥多处理器的并行性。讨论的中心是连接 操作RS。 Q51 一 基于嵌套循环的并行连接算法(PNLJ) 算法: 1) 对处理结点集建立一个环序; 2)把R和S均匀地分配到各结点; 3)独立并行:各结点对R、S的元组按连接属性排序; 4)独立并行:各结点在本地实施对R与S的连接; 5)剩余的R元组传播至下一结点。转到4); 6)当R跑完最后一个结点,算法停。 各结点的本地连接是独立并行。但整体 看RS则是流水线并行。此算法适合于 处理结点多或R与S大小差别大的情况。 接下页 S 不 动 ,R 环 行 B A R,S R,S R R,S R,S D C

  18. Q52 二 基于排序合并的并行连接算法(PSMJ) 算法: 1)使用连接域的HASH映射把R和S的元组分布到N个结点; 2)独立并行:各结点对R和S元组按连接属性排序,然后连接。 由于使用连接域上的Hash函数,将关系分布到各个处理结点, 故R和S中能连结的元组对必落在同一结点,从而R和S的连接 操作可在本地完成。下图描述以身份证号为连接属性的操作。 存放身份证号Hash值为0的R元组和S元组 然后排序后连接。 结点 高 速 通 信 网 络 存放身份证号Hash值为1的R元组和S元组 然后排序后连接。 结点 存放身份证号Hash值为2的R元组和S元组 然后排序后连接。 结点 当两个关系的元组数较接近时,PSMJ算法效率高于PNLJ。但 数据分布的不均匀性(数据偏斜)对算法带来消极的影响,容易 造成HASH桶的溢出,并引起处理器负荷不平衡。现在已有克 服数据偏斜影响的并行连接算法。 接下页

  19. 三 基于HASH的并行连接算法(PHJ) 输入:关系R和S;连接 域上的HASH函数 H1和H2;子集合 数M和结点数N。 输出:RS Q53 关系R和S各M个 子集存放在磁盘 H2值为0 处理 结点 高 速 通 信 网 络 R0 R1 R2 H2值为1 处理 结点 S0 S1 S2 H2值为2 处理 结点 H1值为1 H1值为2 H1值为0 N个处理结点 算法: (1)用H1把R划分为M个子集,HASH值为i的元组送入子集Ri并存盘; (2)用H1把S划分为M个子集,HASH值为i的元组送入子集Si并存盘; (3)for i=0 to M-1 do (并行地) 用H2把Ri分布到N个处理结点,在内存上建立R的HASH表; 用H2以流水线方式把Si分布到N个处理结点; 每个处理结点收到Si元组立即扫描Ri的HASH表进行连接; (4)输出RS.

  20. Q6 第六节 查询优化技术 查询优化的研究主要围绕着具有多个连接操作的复杂查询的 优化问题进行,这样的查询简称为MJ查询。在顺序数据库系 统中,人们追求的是最小工作量。由于使用单处理器,最小 响应时间和最小工作量基本是一致的。但使用多处理器的并 行数据库系统则不同,由于查询问题有不同程度的顺序性, 最小响应时间和最小工作量并不一致,在这种情况下,人们 追求的是查询的最小响应时间。 一个MJ查询可表示为一个查询树G=(V,E),其中结点V是连接 操作和关系的集合,叶结点表示关系,内结点表示连接操作 及其结果,(r,v)E表示结点r是结点v的操作关系。查询树是 二叉树,本节介绍基于查询树的以下算法: 一 基于左线性树的查询优化算法(LDT) 二 基于右线性树的查询优化算法(RDT) 接下页

  21. Q61 • 基于左线性树的查询优化算法(LDT) • 这是基于左线性树和HASH_连接算法的MJ查询优化方法。 • 左线性树是一个特殊的查询树,每个内结点的右子结点是 • 一个关系,左子结点是一个内结点或一个关系。把进 • 行连接操作的两个关系分为内关系和外关系。 • HASH_连接由两个操作组成: • BUILD操作:扫描内关系,建立HASH表; • PROBE操作:扫描外关系,匹配HASH表,完成连接; • 因有两个连接操作并行,故需要两个HASH表的存储空间。 J Bn Pn 数据操作 相关图 利用左线性树 对多个关系进行连接 扫描Rn+1 Sn+1 J Rn+1 Bn-1 Pn-1 …… 3 Sn 扫描Rn Rn J 建HASH表 B2 P2 匹配HASH表,完成连接 …… 2 S3 扫描R3 J R3 建HASH表 B1 P1 匹配HASH表,完成连接 1 R1 R2 S1 S2 接下页 扫描R1 扫描R2

  22. Q62 二 基于右线性树的查询优化算法(RDT) 在右线性树中,每个内结点的左子结点是一个关系,右子节 点是一个内结点或一个关系。与左线性树相同,把连接操作 的两个关系分为内关系和外关系。并行执行N个关系的扫描 及建立HASH表。所有N个连接操作都可并行执行,但需要足 够的主存空间存储N个HASH表。当主存空间有限时,需要解 决存储空间的分配问题,目前已有几种解决方案。 匹配HASH表n+1, 完成连接 J 扫描Rn+1 Sn+1 Bn Pn 建HASH表n+1 利用左线性树 对多个关系进行连接 Rn+1 J 匹配HASH表n, 完成连接 扫描Rn 独立并行 Sn Bn-1 Pn-1 流水线并行 …… …… 建HASH表n Rn J B2 P2 扫描R3 S3 匹配HASH表3, 完成连接 …… 建HASH表3 R3 J 扫描R2 S2 B1 P1 匹配HASH表2, 完成连接 R2 建HASH表2 R1 扫描R1 S1 数据操作相关图

More Related