首页 理论教育并行数据库系统目标:分布式数据库技术中的要点

并行数据库系统目标:分布式数据库技术中的要点

【摘要】:并行数据库系统可以粗略定义为在一个紧耦合多处理器上构造的DBMS。并行数据库系统支持数据库功能,提供C/S接口和一些通用功能。下面讨论并行数据库系统的体系结构。图14.8并行数据库系统的体系结构并行计算机有多个CPU,CPU之间会分工,一部分CPU负责处理会话和用户请求,另一部分CPU负责数据存取和管理。

并行处理是计算机系统中能同时执行两个或多个处理的一种计算方法,目的是改进性能。因此,并行处理可以有效地应用于科学计算上,改进了科学计算的应用响应时间。随着微处理器、并行计算机、并行程序设计技术的发展,使得并行处理广泛进入了数据处理领域。

并行数据库系统结合了数据库管理和并行处理技术。常规数据库管理系统一直面临的一个大问题是“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负责数据存取和管理。