尽量要求事务执行能够并行化。图14.16Teradata DBC的事务处理是并行的图14.16中,每个竖放的矩形表示处理器,分别记为AMP1、AMP2、AMP3和AMP4,横放的矩形表示事务。图14.18算符内并行注:为算符,为算符实例i,n=并行度2.算符间并行算符间并行指的是不同的算符并行计算。图14.19中的两个选择算符是独立并行的。算法14.2是并行关联连接算法。......
2023-10-28
并行处理是计算机系统中能同时执行两个或多个处理的一种计算方法,目的是改进性能。因此,并行处理可以有效地应用于科学计算上,改进了科学计算的应用响应时间。随着微处理器、并行计算机、并行程序设计技术的发展,使得并行处理广泛进入了数据处理领域。
并行数据库系统结合了数据库管理和并行处理技术。常规数据库管理系统一直面临的一个大问题是“I/O瓶颈”,即内存访问和磁盘存取之间花费的时间差别达几个数量级。找到解决这个瓶颈问题的方法一直是DBMS研究十分关注的。
通过并行化可以增加I/O带宽。例如,我们将一个大小为D的数据库存放在吞吐量为T的硬盘上,系统的吞吐量局限在T。反之,如果我们有n个磁盘,每个磁盘存放D/n容量的数据,每个磁盘存放的数据的吞吐量为T′(希望也等于T),则总的吞吐量为n×T′,因为它由n个处理器分担了。所以,我们说并行化可以很好地解决这种瓶颈问题。
因此,并行数据库系统设计人员在努力开发面向软件的解决方案,其基础是强大的多处理器硬件的支持。并行数据库系统的目标可以借助于扩展分布式数据库技术来实现,例如,把数据库分解后,其存储跨越在多个磁盘上,使用内、外查询并行处理来达到优秀的性能。这样可以大大改进性能,包括响应时间和吞吐量(每秒事务数)。考虑面向集合处理和应用迁移的便利,绝大多数的工作放在支持SQL上。典型的产品有Teradata公司的DBC、Tandem公司的NonStop SQL,等等。事实上,无论是ORACLE、DB2还是INFORMIX都有其并行数据库版本。
并行数据库系统可以粗略定义为在一个紧耦合多处理器上构造的DBMS。
并行数据库系统扮演着一个数据库服务器的角色,为计算机网络上的以通用的Client/Server(C/S)方式组织的多个应用服务器服务。并行数据库系统支持数据库功能,提供C/S接口和一些通用功能。为了限制客户机和服务器间的通信开销,需要一个强大的高级接口,让服务器完成更多的数据处理。
理想情况下,并行数据库系统应当提供比主机(mainframe)更高的性价比,这也是并行数据库系统要达到的目标。
●高性能(high-performance):可以借助面向数据库的操作系统的支持,依靠并行性、优化和负载均衡等获得高性能。让操作系统了解数据库的特殊需要(如缓冲管理),简化数据库低级功能的实现,从而减少成本。例如,使用专门的通信协议可以使消息的开销减小。并行化可以增加系统的吞吐量(使用查询间并行技术)、节省事务响应时间(使用查询内并行技术)。但通过大规模并行处理减少复杂查询的响应时间可能会增加总的时间(增加通信时间),影响吞吐量。因此,通过优化和并行化查询以使并行化开销最小化是绝对重要的。
●高可用性(high-availability):因为一个并行数据库系统由许多相似成分构成,所以可以使用数据副本来增加数据库可用性。一个高度并行的系统有许多存储磁盘,因此,本质上,磁盘故障不会导致负载不均衡。(www.chuimin.cn)
●可扩展性(extensibility):在一个并行环境里,数据库大小的增加和对性能需求(如吞吐量)的增加是很容易出现的。可扩展性指的是系统容易通过处理和存储来实现扩展的功能。理想情况,数据库系统应当表现出两个优点:线性扩展和线性加速。线性扩展指的是随着数据库大小的增长,处理和存储能力上线性增长的支持性能。线性加速指的是数据库大小不变时,处理和存储能力上线性增长的支持性能。进一步,扩展系统应当要求现有数据库的重组最小化。相对来说,线性扩展和线性加速对分布式DBMS来说是不合适的目标,因为不容易实现。
下面讨论并行数据库系统的体系结构(见图14.8)。假设有一个C/S体系结构的并行数据库系统,并行数据库系统支持的功能可以分为三个子系统,即会话管理器、请求管理器和数据管理器,与典型的RDBMS一样。它们会涉及并行性、数据分片、复制问题和分布事务等问题。
●会话管理器(session manager)。它扮演事务监控器的角色(如TUXEDO[8]),为客户机和服务器交互提供支持。特别是它实现了客户进程和两个其他子系统间的连接和断接。因此,它可以启动和关闭用户的会话(可能包含几个事务)。在OLTP会话里,会话管理器能够触发事务管理器模块里预载的事务代码。
●请求管理器(request manager)。它接收与查询、编译和执行有关的客户请求。它可以查询数据库字典,其中存放着关于数据和程序的全部元信息(meta-information)。字典本身也像数据库一样由服务器管理。它可以将各个编译阶段、查询执行和返回结果或误差码给客户应用。因为它管理事务执行和提交,出现事务故障时它可以触发恢复程序。为了加速查询执行,它可以在编译时优化和并行化查询。
●数据管理器(data manager)。它提供并行运行编译后查询的所有低级功能,即数据库算符执行、并行事务支持、缓冲管理,等等。如果请求管理器能够编译数据流控制,则数据管理器模块间的同步和通信也是可行的。否则必须由请求管理器来做事务控制和同步的事。
图14.8 并行数据库系统的体系结构
并行计算机有多个CPU,CPU之间会分工,一部分CPU负责处理会话和用户请求,另一部分CPU负责数据存取和管理。
有关分布式数据库技术的文章
尽量要求事务执行能够并行化。图14.16Teradata DBC的事务处理是并行的图14.16中,每个竖放的矩形表示处理器,分别记为AMP1、AMP2、AMP3和AMP4,横放的矩形表示事务。图14.18算符内并行注:为算符,为算符实例i,n=并行度2.算符间并行算符间并行指的是不同的算符并行计算。图14.19中的两个选择算符是独立并行的。算法14.2是并行关联连接算法。......
2023-10-28
可串行化是经典数据库事务并发控制的正确性判据。 抽象数据类型集合的前向交换关系兼容和后向交换关系兼容分别如表15.3和表15.4所示。下面从可交换性上来讨论面向对象数据库的事务管理问题。对象系统中,如果使用封锁技术,则封锁颗粒会有变化。这是因为没有把对象的语义考虑在内。ADT上的事务执行需要多级机制。......
2023-10-28
首先我们讨论并行计算机及其体系结构。并行系统与并行计算密切关联。图14.1共享内存体系结构对于数据库系统来说,大部分共享内存的商务产品可以使用查询间并行算法来提高事务吞吐量和使用查询内并行算法来节省决策支持查询的响应时间。图14.2共享磁盘体系结构共享磁盘的优点:成本低、高可扩展性、负载均衡、高可用性,以及能方便地迁移到单处理器系统。图14.3无共享体系结构无共享的并行数据库系统如Teradata的DBC和Tandem的NonStop SQL等。......
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
分布式数据库系统的数据目录的分布可以有以下多种选择。也就是说,首要的问题是,分布式数据库系统中,数据库目录是集中存放还是分散存放。由于目录的管理均借助于整个系统的相关成分的管理,所以系统的设计和开发开销大大下降。......
2023-10-28
第17.2.3节讨论的云数据库往往也会分布化。基于云计算的分布式数据库系统有其特有的特点,下面我们进一步讨论。在内部层,数据库管理系统扮演核心角色,因此是持续性的。近年来,由于负载加重和高可伸缩性要求,对系统吞吐量的要求越来越高,分布式数据库系统越来越受到计算机产业界的关注。然而,构建分布式数据库系统有其困难性和复杂性。......
2023-10-28
首先考虑分布式数据库设计的目标。在进行数据分布设计时,必须考虑如下目标。当网络传输速率和CPU处理速度相差很大时,本地化更重要。分布数据的可用性和可靠性:数据可用性越高,则要求数据的重复度越高。一般来说,数据存储的开销和CPU、I/O及传输开销不相干,但是必须考虑每个节点可用存储空间的限制。......
2023-10-28
相关推荐