尽量要求事务执行能够并行化。图14.16Teradata DBC的事务处理是并行的图14.16中,每个竖放的矩形表示处理器,分别记为AMP1、AMP2、AMP3和AMP4,横放的矩形表示事务。图14.18算符内并行注:为算符,为算符实例i,n=并行度2.算符间并行算符间并行指的是不同的算符并行计算。图14.19中的两个选择算符是独立并行的。算法14.2是并行关联连接算法。......
2023-10-28
首先我们讨论并行计算机及其体系结构。简单来讲,并行计算机就是由多个处理单元组成的计算机系统,这些处理单元相互通信和协作,能快速、高效地解决大型复杂问题。
并行计算机的发展已有50多年的历史。在此期间,出现了各种不同类型的并行机,如并行向量机(parallel vector processor,PVP)和SIMD(single instruction multiple data,单指令多数据流)计算机等,而MIMD(multiple instruction stream multiple data stream,多指令多数据流)类型的并行机后来占了主导地位。
按指令流、数据流等进行分类,并行机可分为以下四类。
●SISD:单指令单数据流,即指令部件只对一条指令处理,只控制一个操作部件的操作。
●SIMD:单指令多数据流,即由单一指令部件同时控制多个重复设置的处理单元,执行同一指令下不同数据的操作,如阵列处理机。
●MISD:多指令单数据流,即多个指令部件对同一数据的各个处理阶段进行操作。
●MIMD:多指令多数据流,即多个独立或相对独立的处理机分别执行各自的程序、作业或进程。
还有其他分类方法,如下面所说的SMP和MPP。
目前,主流并行机是可扩展的并行计算机(scalable-parallel computer,SMP),包括共享存储的对称多处理机(symmetric multiprocessor)、分布存储的大规模并行机(massively parallel processor,MPP)、分布式共享存储(distributed shared memory,DSM)多处理机、工作站集群(cluster of workstations,COW)和网格计算环境(grid computational environment,GCE)等。但这里我们讨论更宽泛的概念,统称为并行系统。
并行系统与并行计算密切关联。关于并行计算,我们选用Wikipedia的说法[3]:
并行计算是一种计算形态,其中许多指令同时执行,将大问题分解成许多小问题,同时(即“并行”)求解这些小问题。
并行系统代表各种设计选择的折中,以提供各自的优点并获得更好的性价比。可以选择合适的硬件成分,如处理器、存储器和磁盘,让它们借助高速通信介质互联。并行系统体系结构的两个极端是共享内存体系结构和无共享体系结构,它们的中间形态是共享磁盘体系结构。还有混合体系结构,如层次体系结构或NUMA体系结构,具有综合共享内存和无共享(shared-nothing)等特点。
1.共享内存体系结构
共享内存体系结构如图14.1所示。如其名称,系统中的任何一个处理器可以通过快速互联访问任何存储模块或磁盘。IBM3090主机[4]使用的就是这种结构。
图14.1 共享内存体系结构
对于数据库系统来说,大部分共享内存的商务产品可以使用查询间并行算法(inter-query parallelism)来提高事务吞吐量和使用查询内并行算法(intra-query parallelism)来节省决策支持查询的响应时间。
共享内存有两大好处:简化和负载均衡。这两大好处是因为元数据(字典)和控制信息(如封锁表)可以为所有处理器所共享。共享内存体系结构的负载均衡会很优良,因为很容易在共享内存运行时实现负载均衡。
共享内存也有缺点,即高成本、有限扩展和低可用性。高成本是互联造成的,因为复杂度增加了。若使用更高速的处理器(甚至带有大量缓冲存储器),存取共享内存会增加冲突,性能下降。因此,这类并行系统扩展的规模往往局限在两位数的处理器个数(即处理器个数≤100)。最后,因为内存空间为所有处理器共享,所以内存故障会影响所有处理器,伤害数据库的可用性。
值得一提的是,多核架构已经成为处理器设计的主要趋势以及处理各种应用的主流平台。
在目前多核架构的设计中,每个处理器核拥有私有的L1 cache,并有多个核共享L2/L3 cache。这种架构也可以看成是共享内存的体系结构。
2.共享磁盘体系结构
共享磁盘体系结构如图14.2所示。处理器可以通过互联存取任何磁盘单元和排外地(非共享)存取其内存。每个处理器可以存取共享磁盘上的数据库页面,并将它们复制到自己的缓冲区里。为了避免相同页面的冲突存取,维持缓冲的统一,需要有一个全局的封锁协议。
图14.2 共享磁盘体系结构
共享磁盘的优点:成本低、高可扩展性、负载均衡、高可用性,以及能方便地迁移到单处理器系统。由于使用常用的总线技术,互联的成本和共享内存大大降低。如果为每个处理器都配置足够大的缓冲,则在共享磁盘上的冲突能最小化。这样,在可扩展性(当上百个处理器时)上会更好。由于处理器的内存故障可以和其他处理器的存储节点隔离,所以可用性会更高。由于无需重组磁盘上的数据,所以从集中式系统迁移到共享磁盘系统要直接得多。
共享磁盘也存在高复杂性和潜在的性能问题。它需要分布式数据库系统协议,如分布式封锁和两阶段提交协议。这些问题比较复杂。此外,要保持副本间的统一,需要高的通信开销,共享的磁盘也是瓶颈口。
3.无共享体系结构
无共享体系结构如图14.3所示。每个处理器排外地存取自有的主存和磁盘。这样,每个节点可以看成是分布式数据库系统中的本地节点(有自己的数据库和软件)。因此许多分级分布式数据库使用的解决方案,如数据库分片、分布式事务管理、分布式查询处理等都可以在这里得到重用。
(www.chuimin.cn)
图14.3 无共享体系结构
无共享的并行数据库系统如Teradata的DBC和Tandem的NonStop SQL等。
无共享体系结构有三个优点:成本低、高可扩展性和高可用性。其成本低与共享磁盘时的情况相同。由于增加新节点方便,所以可扩展性也好。通过在多个节点上复制数据,可以获得高可用性。
无共享内存系统比共享内存系统复杂得多。高复杂性是由于必须在有大量节点时实现的分布式数据库功能。此外,负载均衡更难实现,因为它依赖于为每个查询进行数据库分割的有效性。与共享内存和共享磁盘不同,负载均衡取决于数据分布而非系统的实际负载。更进一步,系统加入新节点时要求重组数据库来达到负载均衡。
4.层次体系结构
并行计算机系统中还有一种层次体系结构(也称集群体系结构)。层次体系结构结合了无共享体系结构和共享体系结构的特点。思路是构造一个无共享机器,其节点则是共享内存的。层次体系结构如图14.4所示。
图14.4 层次体系结构
层次体系结构有共享体系结构的灵活性,也有无共享体系结构的高可扩展性。在每个共享内存节点,通信可以通过使用共享内存有效地实现,从而提升了性能。由于共享内存体系结构,负载均衡也更容易。
5.NUMA体系结构
NUMA(nonuniform memory access)也是一种体系结构(见图14.5)。它把处理器和存储模块紧密地集成在一起。
图14.5 NUMA体系结构
为了综合可扩展性和灵活性,共享内存的多处理器演变成NUMA体系结构。其目标是提供一个共享内存程序模型及保持其优点,形成一个可伸缩的并行体系结构。
NUMA体系结构还可分为两种:CC-NUMA(cache coherent NUMA machines),它静态地把内存按系统节点划分;COMA(cache only memory architectures,仅缓存内存体系结构),它把每个节点的内存转换成共享地址空间的大型缓冲区,如图14.6所示。这样,数据项分配完全借助其物理地址,数据项自动在内存迁移或复制。
因为共享内存和缓冲一致是由硬件支持的,远程内存访问非常有效,时延只是本地存取的数倍。
NUMA现在是用基于国际标准和买来就可用的部件(如通用的PC服务器)来构建的。
图14.6 COMA
我们选用早期的Teradata DBC[5]作为示例进行介绍,原因是笔者熟悉该系统。20世纪90年代中期,笔者曾主持并参与了其分布式版本的研制。
将Teradata DBC设计成一个无共享的MPP结构。
MPP是massively parallel processing首字母的缩写,与SMP(symmetric processing)对应。两者之间的主要差别是SMP系统里的所有CPU共享内存,而在MPP系统里,每个CPU有自己的内存。所以从某种角度看,MPP系统编程更难,但存储访问的瓶颈的改善则要好得多。
Teradata公司的DBC的一个特色是处理器互联的Ynet(BYnet)结构。Ynet是一种节点互联结构(见图14.7),通过分叉形(类似于字母Y)的连接器灵活地把处理器成对连接起来。
图14.7 Ynet处理器互联结构
由图14.7可见,使用一个Y连接器可以接入两个节点,每个节点上接入一个处理器就成为两处理器的系统,若每个分叉上接入Y连接器,则可接入4个处理器,若再扩展一层(第三层),就可接入23个处理器。依此类推,第n层就可接入2n个处理器。显然,扩展灵活性是这类结构的典型特点。
目前,新的趋势是多核体系。多核处理器是指在一个处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。双核、四核、八核,甚至几十核的处理器(CPU)已在市场上流行。多核体系开启了并行计算、并行编程的新时代。
与此同时,超级计算机的研制也如火如荼。2008年,超级计算机进入了浮点运算速度达每秒千万亿次时代,IBM公司的Roadrunner达到峰值1.026 petaflop/s。2014年,中国天河二号获全球超级计算机排行榜四连冠,浮点运算速度为33.86 petaflop/s。2016年6月20日,第47届国际高性能计算机系统TOP 500排行榜中:第一名是由我国国家并行计算机工程技术研究中心研发的“神威·太湖之光”超级电子计算机,其Linpack测试值为93.0146 petaflop/s,峰值浮点运算速度为125.4359 petaflop/s。2018年的第51届国际高性能计算机系统TOP 500排行榜上,第一名为美国的Summit高性能电子计算机系统,其Linpack测试值为122.3000 petaflop/s,峰值浮点运算速度为187.6593 petaflop/s,功耗为8806 k W;中国的“神威·太湖之光”超级电子计算机名列第二,其Linpack测试值为93.0146 petaflop/s,峰值浮点运算速度为125.4359 petaflop/s,功耗为15371 k W。
有关分布式数据库技术的文章
尽量要求事务执行能够并行化。图14.16Teradata DBC的事务处理是并行的图14.16中,每个竖放的矩形表示处理器,分别记为AMP1、AMP2、AMP3和AMP4,横放的矩形表示事务。图14.18算符内并行注:为算符,为算符实例i,n=并行度2.算符间并行算符间并行指的是不同的算符并行计算。图14.19中的两个选择算符是独立并行的。算法14.2是并行关联连接算法。......
2023-10-28
参考文献[4]中详细讨论了并行数据库系统中的索引问题。讨论并行数据库系统数据的安置问题,下面几个方面是不可忽视的。并行数据库系统有物理资源级和操作级两个负载均衡问题。图14.25倒排文件的结构在并行系统里,分割一个倒排文件可以提高负载均衡和检索效率。......
2023-10-28
实现并行数据库系统依赖于分布式数据库技术。图14.9Teradata DBC并行数据库系统的硬件体系结构图14.9中的DSU是disk storage unit的首字母缩写,负责存储数据。其中,IFP处理来自本地连接终端的请求,COP处理来自网络的请求,因此称为通信处理器。图14.10Teradata DBC示意图图14.11Teradata IFP示意图由图14.12可知,通信处理器COP的主要组成模块是网络接口、负载均衡、会话控制、输入数据转换、SQL解析器、调度器和Ynet接口等。图14.12Teradata COP示意图图14.13Teradata AMP示意图......
2023-10-28
自1995年以来,基于CORBA软件的企业级应用发展迅猛。CORBA是OMG随着硬件和软件产品的快速增长,针对互操作性的需要而提出的。CORBA 2.0于1994年12月被提出,它定义了不同供应商的ORB怎样才能实现真正的互操作性。图12.4OMA体系结构OMA体系结构主要包括以下几部分。ORB用于发现与该请求对应的对象实现,对所要求的所有机制做出响应,准备好对象实现以响应请求,并完成请求所需要的数据通信。由图12.5可知,客户端通过ORB向对象实现发送请求。......
2023-10-28
查询优化器体系结构如图6.2所示。图6.2查询优化器体系结构查询优化器的工作过程一般分为两个阶段:重写阶段和规划阶段。在集中式系统中,查询执行策略可以很好地使用扩展关系代数来表示。集中式查询处理器的主要角色是为给定查询根据等价原理选择最好的关系代数查询表达形式。同时,除了要选出关系代数运算的顺序外,分布查询处理器还需确定最佳的运算执行节点。......
2023-10-28
体系结构是计算机科学中常用的概念。什么是体系结构呢?图2.1数据库系统的基本结构由图2.1可知,数据库管理系统构建在操作系统上,用于管理数据库,给用户提供所需的服务。那么,数据库管理系统的体系结构是怎样的呢?图2.22层数据库系统结构图2.33层数据库系统结构3.多层结构对于大型、复杂的应用,3层结构显得力不从心,因此更多的层次出现在系统中。......
2023-10-28
要讨论体系结构问题,首先要回顾前面提到的体系结构模型,再讨论本块恢复管理器和数据库缓冲管理器间的接口。要指出的是,LRM执行的事务操作仅对易失数据库实施。如果没有空余的缓冲空间,LRM就选择一个缓冲页面写入稳定数据库,空出一个页面,再读一个请求的页面到空出来的缓冲空间。数据库缓冲管理器也提供接口,借助该接口,LRM可以让它写回缓冲页面。......
2023-10-28
并行查询优化与分布查询处理类似。并行查询优化可以同时利用算符内并行和算符间并行的优点,还可以使用分布式数据库管理系统的技术。并行查询优化是指生成一个给定查询的执行计划,达到目标成本函数最小的目的。为了精确预测,成本模型必须包含并行环境的知识。为了估算执行计划的成本,成本模型使用数据库统计和组织信息,如关系基和分割等,就像分布式查询优化器一样。......
2023-10-28
相关推荐