第29卷 第3期 计算机工程与设计 2008年2月 VO1.29 NO.3 Compmer Engineering and Design Feb.2008 基于机群架构的并行数据库实现技术研究 柳锴1,2,3 唐雨新1,2,3 张云泉 , 李玉成‘ (1.中国科学院软件研究所并行计算实验室,北京100080;2,中国科学院计算机科学国家重点实验室, 北京100080;3.中国科学院研究生院,北京100080) 摘 要:在总结了现有并行数据库实现模型的基础上,基于“半重写变换”模型…实现了一个并行数据库系统的原型。通过对 数据划分/重划分、并行选择、并行排序、并行连接等关键操作的实验分析,指出了“半重写变换”模型存在的缺陷,并提出了 一种混合式的改进模型。从理论上说,在机群架构下实现并行数据库系统,这种混合模型较单一模型更有优势。 关键词:并行数据库;实现模型;SMP机群;数据划分;并行算法 中图法分类号:TP311.133,2 文献标识码:A 文章编号:1000—7024(2008)03.0526.04 Research on implementation technology of cluster parallel database system LIU Kai TANG Yu—xin‘l213’ZHANG Yun—quan 。。,LI Yu—cheng (1.Parallel Computing Lab,Institute of Software,Chinese Academy of Sciences,Beijing 100080,China; 2.State Key Lab ofComputer Science,Chinese Academy ofSciences,Beijing 100080,China; 3.Graduate University,Chinese Academy of Sciences,Beijing 100080,China) Abstract:Based on the analysis of existing implementation models of parallel database system,a prototyped parallel database system implemented on hte basis of”Semi.rewrite and Transfer”(SRT)model…iS descirbed.The experiments ofcused on some key operations such as data partitioning/re—partitioning,parallel selection,parallel sorting,paralleljoin revealed that hte SRT model had some limitations. A hybrid model is proposed,which is considered as a better method for implementing parallel database systems on cluster rachitecture than single models. Key words:parallel database system;implementation models;SMP cluster;data partitioning;parallel algorithms 0 引 言 成为并行数据库设计者们纷纷采用的硬件平台。 在实现方式方面,目前存在3种实现模型,我们分别称之 数据库是计算机领域发展最快和应用最广的学科之一。 为重写、扩充和半重写变换“ 。重写模型是以并行体系结构为 随着计算机应用领域的不断扩人,大型应用的强劲需求不断 背景重新设计并行数据库系统的实现方法;扩充模型则是在 促使数据库的规模迅速膨胀,对查询响应时间的要求更是有 现有的数据库管理系统中扩充并行处理功能;而半重写变换 增无减;同时机群技术日趋完善并成为后台超级服务的主流 模型是重写模型和扩充模型的结合。 平台,为高性能数据库的发展提供了强大的支撑。在硬件技 术和应用需求的双重推动下,运用先进的并行处理架构、以满 l现有的并行数据库系统实现模型 足高性能应用需求为目标的并行数据库系统逐渐被人们所重 重写是从零开始重新设计一个并行数据库管理系统,这 视,成为当前数据库领域的研究热点之一。 样可以借鉴以往系统实现的经验教训I,采用最新的研究成果 根据处理机之间共享资源的方式的不同,可以将并行数 和最优的设计方案,甚至还可以对操作系统进行改进,因为采 据库的体系结构分为3种:共享主存的多处理机、共享磁盘的 用定制的操作系统可为数据库开发并行性提供更好的支持, 多处理机、无共享的多处理机。由于无共享结构具有高扩展 重写模型的代码修改率为100%,图1(a)通常被并行数据库原 性、高可靠性和低成本的优势,它被认为是最适合实现并行数 型系统的研制者所采用,如著名的Gamma系统。 据库的体系结构。而机群作为一种典型的无共享架构,自然 扩充是对已有的串行数据库系统进行模块改进和功能增 收稿日期:2007.03.12 E—mail:ioscas@gmail.tom 基金项目:国家自然科学基金项目(60303020、6O533O20):国家973重点基础研究发展计划基金项目(2005CB321702);国家863高技术研究发 展计划基金项目(2006AA01A102、2006AA01A125)。 作者简介:柳锴(1982一),男,湖北武汉人,硕士研究生,研究方向为并行算法、并行数据库技术: 唐雨新,男,硕士研究生,研究方向为并 行算法、并行数据库技术; 张云泉,男,博士,副研究员,研究方向为高性能计算及并行数值软件、并行计算模型、并行数据挖掘、并行数据 库: 李玉成,男,研究员,研究方向为大规模科学与工程计算的方法与软件、高性能并行数学软件库。 维普资讯 http://www.cqvip.com 加,使系统能充分发挥多处理机的优势。扩充模型保持串行 数据库系统的应用界面不变,但是对底层DBMS的核心代码 DBMS Insatnce:负责各局部数据库的存取和查询。 2.2实验环境 我们借助OSCAR 搭建了一个4节点的Beowulf机群, 其中1个是起集中控制作用的主节点,另外3个是计算节点, 各节点的配置如下:CPU:IntelPentium(tm)III 1.0G(x2)。内存: 2GB DDR。硬盘:36GB SCSI。网卡0:IBM pro1O0。网卡1: 做了改写,图1(b)这种模型的典型代表有Oracle公司的OPS, IBM公司的DB2PE。 半重写变换“ 也要求以传统的DBMS核心为基础,但重要 一点是该模型不要求修改DBMS源代码(这大大降低了实现 并行数据库系统的条件),它不改动底层DBMS,只对查询服务 的前端系统做了重写,图1(C)中国防科技大学的银河3系统 IBMpro100。节点间采用百兆交换机互联。 2_3全局字典的设计 全局字典也称为数据字典。在传统定义中,数据字典是 数据库中的一块用来保存数据库自身信息的预留空间。由 即是基于该模型的一个实例。 莒(a)重写 甘(b)扩充 营(c)半重写变换 于并行数据库硬件环境的特殊性,原型系统的全局字典除了 要保存数据库自身的信息外,还需要保存机群节点的配置信 息。通过加入全局字典,可以将那些相对稳定的信息提前保 存起来,这样可以避免查询时的重复操作,从而提高并行查 询的性能。 以下分别是全局字典中节点信息的表结构(nodes info)和 关系表信息的表结构(tables info): nfo (1)nodesi~图1并行数据库的实现模型 2原型系统的设计与实验 2.1系统架构 首先,我们基于“半重写变换”模型设计并实现了一个机 群环境下的并行数据库原型系统。它主要由查询引擎、并行 算法库、全局字典、执行进程以及多个DBMS Instances组成, 如图2所示。 用户 其中:ID是节点的编号,Hostname是该节点的主机名,Name 是该节点在机群系统中的别名,IP是该节点在机群系统中的 内部IP。 (2)tables info 查询引擎 分析器 I全局字典I 二][二 并行算法库 ± 优化器 。。。。。。。●__●_。●。。一 ——孺 数据重划分 并行选择 并行投影 并行排序 并行连接 、其中:ID是关系表的编号,Tablename是该表的表名,PrimaryL 调度器 key是该表的主关键字名(如果没有,则为空),Tuples num是该 表的元组的个数,Attributes num是该表的属性的个数,Vectors 是区间划分的划分向量。 执行进程i f执行进程f … f执行进程 划分向量Vectors的格式是原型系统自定义的,我们将不 同属性的划分向量集中在一起,以字符串的形式存放在数据字 DBMSI I DBMSl Instancel 1Instancel … lDBMS Ilnstanc, 典中,然后利用专门设计的提取算法来获取所需的划分向量。 2.4并行算法库的设计 在开发并行算法库时,选择实现了3个具有代表性的操 作——选择、排序、连接。它们的性能表现可以直接反映出实 现模型的优劣。为了便于代码重用,我们将并行算法中的公 图2基于“半重写变换”实现模型的并行数据库原型系统架构 查询引擎:该模块为原型系统的前端,它的功能是从用户 处接收SQL命令并交给分析器进行语法分析,然后优化器对 其进行优化,生成并行执行规划,最后调度器调用并行算法库 中的相应算法完成该规划。 全局字典:它用来管理全局数据库的表信息以及机群的 节点信息,用来指导查询优化、数据划分和并行算法的执行。 并行算法库:这是原型系统的核心部分,它由数据划分/ 重划分、并行操作两类模块组成。数据划分模块用来实现全 共部分提取出来,单独用一个模块来实现,于是形成了并行算 法库中各子模块之间的依赖关系树,如图3所示。 局数据库的分布式存储;数据重划分模块被并行排序和并行 连接模块调用,用来实现复杂并行操作所需的数据重分布功 能;并行选择、并行投影、并行排序、并行连接是若干基本关系 操作的并行实现。 执行进程:负责并行查询规划中算子的执行,包括多处理 机节点之间为执行并行算法而必需的同步与通信。 图3并行算法库中各模块之间的依赖树 2.4.1数据划分(Partitioning) 并行数据库的数据划分是指将数据库中的各种物理数据 ——527・—— 维普资讯 http://www.cqvip.com
(关系元组、索引节点)有效的分配到各个处理节点上,通过发 掘I/0并行来提高并行数据库系统的性能。原型系统的数据 划分模块采用了以下两种划分算法: (1)基于Round—Robin的数据划分:假设REC,是R的第f个 元组,系统的处理单元数为Ⅳ,则经过划分后,REC,所在的处理 并行选择算法是基于Range数据划分设计的,在做并行 选择时,我们假设待查询关系已经按特定的划分向量均匀的 分布到N个计算节点中了,其执行过程如下: 首先,主节点从用户处获得选择操作的关系名和选择条 件,并根据划分向量得到需要启动的处理机序号,然后,被激 活的计算节点并行的执行本地选择操作,并将查询结果发向 主节点,最后,主节点将查询结果汇总。 单元号可以由下式计算得到:PUNum(兄 G)=iMODN。 (2)基于Range的数据划分:先将关系R的元组按划分属 性Attr进行排序,然后将所排值域序列划分成N个子区间,假 2.4.4并行排序(PSort) 设为I。=【V。,V。],I =【V。,V -I =【V ,V ],其中N为系统处理 单元总数,我们把这一组区间称为“划分向量”。再按照下式 对数据元组进行分类:&=(REC,I肛GER,Attr(REC,)∈ ), 七∈[1,jv]。最后把元组集合&放置到如下处理单元上:PUNum ,/lREC :K REC ∈sI 2.4.2 数据重戈d分(Re.Partitioning) 为了模拟任意时刻并行数据库中数据的分布情况,我们 先调用Round—Robin数据划分算法对计算结点上的数据做了 初始化,然后在此基础上做数据重划分。 (1)基于Range的数据重划分:首先,丰节点从全局字典 中获取各机群节点的IP信息,并提取出关系在划分属性上的 划分向量。然后,各计算节点按照划分向量将本地元组划分 成N块(N为处理节点数),再将“块数据”按“块号”发送到对应 的计算节点上去,最后各计算结点将接收到的“块数据”汇总。 下面以N=3为例,展示该算法的数据流程,如图4所示。 R 图4基于Range的数据重划分的数据流程 (2)基于Hash—Round—Robin的数据重划分:这种重划分算 法与Range重划分的原理基本相同,只有两点区别:在本地分 块阶段,Range算法是基于数据字典中的划分向量的,而Hash. Round—Robin是基于一个逻辑桶划分函数h的,而且后者分的 块数更多.我们称之为“桶”:另外,由于Hash—Round—Robin重 划分的块数大于处理节点数,所以不能像Range算法那样简 单处理,而是需要采取轮转策略进行节点间数据交换。下面 以N=3为例.展示该算法的数据流干旱,如图5所示。 2.4-3 并行选择(PSelect) R1 R2 R3 I 』 BIIIBI2]BI3 BI4]BI5]BI6 B211.22 F.231.241.251.26 B311.321.331.341.3 ̄1.3, BIl 匿 IIB21IB31 Bi41B24[B34 Bl2IB22lB32lB1蓦 5lB25IB35 Bl3IB23IB33l l6IB26lB3lf l 』 』 』 』 I Bl B4 B2 l B5 B3 l B6 图5基于Hash.Round—Robin的数据重划分的数据流程 ——528—— 并行排序算法是基于Range数据重划分设计的,在做并 行排序前,我们假设待查询关系以一种随机的状态均匀分布 于N个计算节点中,其执行过程如下:首先,主节点从用户处 获得排序操作的关系名和排序属性,然后将排序属性作为划 分属性调用Range重划分算法,待元组重分布完毕后,所有计 算节点并行的执行本地排序操作。 2.4.5并行连接(PJoin) 并行连接算法是基于Hash.Round—Robin数据重划分设计 的,在做并行连接前,我们假设待查询关系以一种随机的状态 均匀分布于N个计算节点中,其执行过程如下:首先,主节点 从用户处获得连接操作的关系名R、s以及连接属性R.a、S.b, 然后将连接属性分别作为对应关系表的划分属性调用Hash— Round-Robin重划分算法,待元组重分布完毕后,所有计算节 点并行的执行本地连接操作,最后主节点将查询结果汇总。 2.5实验和分析 2.5.1 并行选择(PSelect) “选择”是数据库查询中最简单和最常用的操作,为了对 并行选择的性能进行全面考察,我们针对以下几种典型的选 择操作对系统的并行选择模块进行了测试: (1)全选择 select from table; (2)点选择 select from table where intn=5000; (3)区间选择 select from tbale where int n>1000(命中1个计算节点): select from table where int n>5000(命中2个计算节点): select}from table where int n>500(命中3个计算节点); 在3个计算节点的情况下,串行选择与并行选择的运行 时间对比如图6(a)~6(e)所示。 加速比统计如表l所示。由表l可以看到,并行选择在 各种操作上都有明显的优势。全选择的平均加速比稳定在2.5 左右,区间选择l(命中1个处理机)的平均加速比为1.29,区间 选择2(命中2个处理机)的平均加速比为1.69,区间选择3(命 中3个处理机)的平均加速比为2.55,点选择的平均加速比高 达2.80,在某些数据集上甚至出现了超线性加速比。 对于区间选择1只有l-3左右的加速,我们的解释是:当 只命中一个处理机时,我们的并行选择实际上己退化为串行 选择。虽然查询范围缩小为原来的l/3,但是由于受启动并行 进程和进程间通信开销的影响,没有获得更高的加速比。 2.5.2并行排序(PSort) “排序”虽然不是数据库领域的独有问题,但却是数据库 应用中非常普遍且特别耗时的操作之一。我们通过下面的查 维普资讯 http://www.cqvip.com
400 350 300 厘250 苔200 霜150 100 50 0 数据规模 (a)“全选择” 8 / / 垂 / / /—,——一 r———一 6 /.——-一 — =.—●r 。 . . .0 5 10 15 20 25 30 数据规模 (b)“点选择” 器 4 / / / / /// /,/ / ; —-- ,一 8 . . .. .0 5 10 15 20 25 30 数据规模 (c)命中1个节点的“区间选择” 28 / / / /—/ 盖嚣 /—,一 一, ——/./ — :.一—- 28 j . . . . 0 5 10 15 20 25 30 数据规模 (d)命中2个节点的“区间选择” 300 250 垂200 鲁150 蒿100 50 0 数据规模 (e)命中3个节点的“区间选择” +并行选择; +串行选择 图6 串行选择与并行选择的运行时间对比 表1并行选择操作的加速比(3个计算节点) 选数据规模(×10 ) 择类型 0.15 1.2 3.0 6.0 9 0 l2.0 30.0 全选择 2.09 2.55 2.43 2.45 2 57 2.56 2.54 点选择 3.15 2.62 2.88 2.75 2.70 3.O0 2 52 区间选择1 1.06 1.81 1.27 1.O8 1 22 1.26 1.33 区间选择2 1.76 1.72 1 71 1.67 1.69 1.65 1.63 区间选择3 2.40 2.67 2.56 2.77 2.65 2.65 2.14 询操作对原型系统的并行排序模块进行了性能测试: select from table order by intn; 在3个计算节点的情况下,串行选择与并行选择的运行 时间对比如图7所示。加速比统计如表2所示。 6005。。 / / 垦400 黜 ,/ // P r : . 0 5 10 15 20 25 30 数据规模 ---it--并行选择; +串行选择 图7“排序”的串并行时间对比 表2并行排序操作的加速比(3个计算节点) 数据规模(×10 )1 0.15 I 1.2 l 3.0 l 6. 9.0 12.0 30.0 平均加速比 f 0.59 f 1.O0 f 0.96 f 1 O1 1.04 1.14 1.14 可以看到,并行排序并没有像并行选择那样获得令人满 意的加速比,在数据集较小时甚至会导致性能劣于串行排序。 造成这种现象的客观原因是:机群的节点数太少,无法充分发 挥并行化后的优势;另一方面,由于时间的关系,没有选取更 大的测试集进行测试,从时间曲线来看,当继续增大数据集 时,并行排序的加速比可能会继续增大。 2.5-3 并行连接(PJoin) “连接”是数据库查询中最耗时和最重要的操作,也是构 成多元连接查询的基本运算。我们通过最简单的等值连接查 询来对原型系统的并行连接模块进行测试: select from tl,t2 where t1.a=t2.b; 在3个计算节点的情况下,串行选择与并行选择的运行 时间对比如图8所示。加速比统计如表3所示。 / 弱 ∥ / ,, 蔷 // 一, . . ..- },一一 . .. 0 5 10 15 20 25 30 数据规模 ---it--并行选择; +串行选择 图8“连接”的串并行时间对比 表3并行连接操作的加速比(3个计算节点) 与并行排序一样,并行连接也存在着同样的性能问题,具 体原因会在后面详细说明。 3改进模型的提出 通过上述测试结果我们可以看到:基于“半重写变换”模 型实现的原型系统对数据交换量很小的操作(如并行选择)具 有显著的加速效果,但是对于并行排序、并行连接这种数据交 换量大的操作就显得力不从心了。 为了改进这种模型,我们有必要分析一下“半重写变换” 的本质。这种模型的主要优点是:结构简单、易于实现、可扩 (下转第646页) -——529-—— 维普资讯 http://www.cqvip.com
■. 录数的持据体元具系标统数有本系不准据文的管同。广提重理元极泛出复数如大适了建据何动地用设标对态减性问准不元题少,加以数同。了快及据的重我工了标目复们作政录准将建流府系下设继程信统的工续息元配研作目化数置究,录工建据从动系作设管根态统理流的本元,策的速扩上数略工大度提据,作适。升 解标,用了决准以性下支目。 参考文献: [1] 何志兰.网络信息资源组织~Dublin Core[J].现代情报,2005 (1):83.84. [2] 赵志荣,张小林.GILS:结构、元数据、应用[J]..隋报科学,2000,18: 8l6_819. [3] 何小箐.论电子政务档案元数据标准【J].现代图书情报技术, 2003,6:80-8 1. 【4] 政务信息资源目录体系工作组.政务信息资源目录体系第3 部分:核 Ii,元数据编制说明和征求意见稿[s].2005. 【5]XMLSchemaPart1:Structures Second Edition[S/OL].httrl:// www.w3.org/TR/xmlschema-2/#datatype.2007—01-03. [6]XML Schema Pan1:Structures Second Edition[S/OL].http:// www.w3.org/TR/xmlschema一1/,2007—01—03. [7] 高云君,张学杰,章方铭.XML技术在电子政务信息交换中的 应用研究[J].计算机工程.2003(23):170—179. [8] 周红波,孙宇达,王继霞,等.基于XML的数据交换及其参照完 整性研究[J].计算机工程与设计,2007,28(11):2611-2613. (上接第529页) 展性好,但是它的缺点也很明显,由于这种模型不要求改动底 考虑通信问题带来的影响。 层DBMS,所以它的改进措施都位于DBMS核心之外,并行性 的获取主要是通过数据分块来榨取I/0并行实现的。也就是 参考文献: 说,在执行实际查询操作之前,所有的数据必须通过数据划分 [1] 杨利,昌月楼.并行数据库技术[M].长沙:国防科技大学出版 或重划分放到正确的“位置”后,才能开始并行的执行相关操 社。2000. 作。在这种模型下,计算和通信是分离的,对于通信量小的操 [2] SchikutaE.KirkovitsPClusterbasedhybridhashjoin:Analysis and 作,计算开销占据主导地位(如并行选择),于是并行化的好处 evaluation[C].ProcⅢEElr/temationalConferenceonClusterCom. 得以凸现出来;但是对于通信量很大的操作(如并行排序、并 puting,Chicago:IEEE Computer Society Press,2002:461—466. 行连接),无论怎么改进并行算法也无法弥补高昂的通信开销。 [3] 1 ̄jkurnar B.High performance cluster computing architectures 基于以上分析,我们提出了一种新的实现模型。它是综 and systems[M].Prentice—Hall Inc,1999. 合了“半重写变换”模型和“扩充”模型各自的优势的混合模 【4] Goetz Graefe.Implementing sorting in database systems【J】. 型。我们不妨将基于机群的数据库查询操作分为两大类:通 ACM Computing Surveys,38(3):10 es,2006. 信密集型操作和通信稀疏型操作。对于通信稀疏型操作,我 [5] John Cieslewicz,Jonathan Berry,Bruce Hendrickson,et a1.Rea- 们依然采用“半重写变换”来实现;而对于通信密集型操作,我 lizing parallelism in database operations:Insights from a massiv- 们则改用“扩充”模型来实现。“扩充”模型是一种需要改动底 ely multithreaded architecture[C].Chicago,Illinois:Proceed- 层串行DBMS的模型,它通过在DBMS核心内部实现并行操 ings ofthe 2nd International Workshop on Data Management on 作算法,来达到计算和通信的重叠,从而削弱通信开销对总查 New Hardware,2006. 询时间的影响。从理论上说,这种模型比单一的“半重写变 [6] The Open Cluster Group.Oscar cluster usePs guide software 换”和“扩充”模型更适合于在机群系统上实现并行数据库。 version 4.2 documentation version 4.2.[EB/DK].hap://OSCar. 4结束语 sourceforge.net,2005-10-28. [7] MichaelJ Q.Parallel programming in C with MPI and OpenMP 虽然基于机群架构的并行数据库系统具有可扩展性好、 [MI.The McGraw-Hill Companies Inc,2004. 易于开发等优势,但是同机群上的其它应用一样,机群数据库 [8] Vikram V MySQL:The complete reference[M].McrGaw-Hill 也会遇到通信瓶颈的问题,在选择一种实现模型时,必须充分 Osbome Media,2004. ・——646・——
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务