ccidnet????

出版日期:2004-08-02 总期号:1335 本年期号:56

本期导读
要闻综合
中国信息化
网络与通信
软件与服务
产品与应用
渠道与市场
华东专刊
华南专刊
西北专刊
东北专刊
联想携安腾
构建并行数据库


   〔联想集团高性能服务器事业部 陆卫东〕


  图1 安腾2处理器平台与RISC平台标准测试比较图

  当前,信息技术的飞速发展和全方位的应用渗透,向我们展现了以数据为中心的时代趋势,数据库已当之无愧地成为各类应用数据处理的核心平台。大型应用的强劲需求不断地推动着数据库规模的迅速膨胀,并行数据库应时而发成为迎接这一挑战的有效利器;同时机群技术也日趋完善并成为后台超级服务器的主流平台,为并行数据库提供了强大的支撑;安腾技术横空出世,64位超标量计算后来居上,成为核心计算引擎的新贵。因此,以安腾技术为基础,通过机群系统和并行数据库完美结合的系统成为构建大型数据库应用系统的必然选择。

  并行数据库技术

  现在数据库变得越来越大,访问数据库的用户也越来越多,并行处理在数据库计算环境中的重要性日益突出。促进在数据库环境中使用并行处理主要有如下三个因素:提高速度或性能的需要、可扩充性的需要、高可用性的需要。此外,并行处理不仅增强了处理能力,同时还使吞吐量更高、容错性更好、性价比更高。

  一、并行数据库的几种并行技术

  数据库应用程序在并行计算环境中可以使用两种并行机制:查询间并行和查询内并行。

  查询间并行机制是使用多个处理器来同时执行几个单独查询的能力。查询间并行机制不会提供加速,因为每个查询仍然只由一个处理器执行。

  在联机事务处理(OLAP)应用程序中,每个查询都是独立的,都要占用很短的时间来执行。随着OLTP类型的用户数目的增加,会产生更多查询。如果没有查询间并行机制,所有的查询都会在一个处理器上分时执行,这会降低系统响应时间。使用查询间并行机制,OLTP用户所生成的查询可以分布到多个处理器上执行。由于查询是由多个处理器同时执行的,因此系统响应时间仍能保持满意。

  查询内并行机制是把一个查询分割成多个子任务并使用不同的处理器并行处理的能力。结果是减少了执行一个查询所需要总体时间。查询内并行机制在决策支持系统(DSS)中十分有用,这些应用中通常都有很多复杂的查询,需要长时间运行。随着DSS系统应用日益广泛,数据库提供者已经开始增加对查询内并行机制的支持。

  二、 并行数据库的运行平台要求

  大部分现代商业DBMS(数据库管理系统)产品已经实现了并行特性,以Oracle为例,它对并行处理的支持可以划分成以下两个特性集:并行执行(指查询内并行机制)和并行服务器(指使用多个实例来打开一个共享数据库)。

  Oracle的并行执行允许Oracle把一个任务分布到多个处理器上,从而快速完成该任务。这允许Oracle利用一台机器上的多个CPU,对一个任务进行并行处理。为了利用Oracle的并行执行特性,需要在支持多CPU的环境中才能运行。硬件运行平台的要求是SMP(对称多处理器)系统或机群系统。在机群系统中,并行任务都是在不同的节点上运行的,并且每个节点都可能是一个SMP系统。

  Oracle并行服务器(OPS)可以允许一个数据库装载到多个数据库实例上,并同时被这多个数据库实例打开。每个OPS实例都像是一个单独的Oracle实例,并且在一个具有自己的CPU和内存的独立节点上运行。OPS允许不但可以把自己的工作广播到多个CPU上,而且可以广播到多个节点上,从而把并行机制提升了一个层次。Oracle并行服务器是在共享磁盘的机群体系结构上运行的,其中多个节点共享通用的数据库,这个数据库可以从所有节点上访问。Oracle并行服务器必须在机群系统中运行,不能在一个SMP系统上运行。

  安腾平台的表现突出

  借助EPIC(Explicitly Parallel Instruction Computing)架构,安腾处理器能够并行处理大量指令,大幅提升应用的性能。结合软件编译器,它可以最大限度提高指令吞吐量。除此以外,先进的推算功能以及推测功能(甚至可以在处理器需要指令之前从内存中载入指令)有助于理顺指令的执行过程,提高应用的速度。

  安腾2处理器的超强性能已经得到多种工业标准性能指标评测的证实。(如图1)。安腾架构的全新并行计算能力和大内存寻址能力完美结合,为数据库应用提供了极为广阔的内存空间。主内存或高速缓存中可以容纳大量数据,以实现更快速的存取;并行处理能力支持对同时操作的快速查询。更值得一提的是,全新的驻留内存数据库(IMDB),其运行速度远远超过传统的磁盘优化应用。

  超大型解决方案

  构建超级大型数据库应用系统,数据库平台必然要选择具有超常并行能力的系统。以Oracle为例,Oracle并行服务器(OPS)必然成为惟一的选择,这样的机群系统自然会成为构建整个应用系统的最佳硬件支撑平台(如图2)。

  服务器节点子系统——Oracle并行服务器与普通的数据库服务器不同,它需要在机群环境下运行。机群中的多个节点(两个或更多)使用一定的机制连接在一起,协同工作,对外提供一个可靠的、高性能的Oracle服务。两个节点可以采用低成本的直连方式构筑数据交换私网,超过两个节点采用高速IP交换机构筑数据交换私网。Oracle并行服务器可采用安腾服务器和Linux操作系统。

  光纤存储子系统——服务器子系统通过插在服务器PCI插槽的HBA卡连接光纤存储子系统。两个节点的并行数据库系统采用直连存储方式,无需使用光纤存储交换机和高速IP网络子系统,在可靠性上,服务器子系统可以通过冗余链路连接光纤存储子系统。

  两个节点以上的并行数据库服务器子系统需要通过光纤存储交换机连接光纤存储子系统,并通过高速IP网络子系统构筑数据交换私网;在数据备份方面,采用备份磁带库直接接入存储交换机的方式进行离线备份(LAN Free Backup),能够明显减少数据备份对于高速IP网络子系统和对外服务公网的压力。在可靠性上,采用SAN冗余设计方案,提升整体系统的可靠性。

  高速IP网络子系统——NS系统在各服务器节点中有大量的数据交换,为了占用数据库对外服务的带宽,通常采用在服务器节点间组建“私网”即“内部数据交换网”。当服务器子系统仅有两个节点的时候,通常无需部署交换机,仅需使用“直连双绞线”连接两个节点的千兆网卡即可。当服务器节点超过两个的时候,就需要部署高速IP网络子系统。

  并行数据库软件子系统——OPS(Oracle Parallel Server)和RAC(Real Application Cluster)Oracle并行服务器是为了满足人们对系统的高可靠性、高速性以及VLDB(大规模数据库)的需求而开发设计的一项并行处理技术,OPS/RAC的体系结构为基于“共享一切”。

  整个Cluster中只有一套数据库,在这套数据库上可以运行多个instance(实例),所有节点的instance共享一套data file(数据文件)和control file(控制文件),同时每个instance均有自己的redolog file,且任何一个节点上的redolog file均能够为其他节点访问,这样保证在某个节点上宕掉后,其他节点能够利用宕掉节点上的redolog file进行数据库的恢复。

  与此同时,所有业务关键操作都可以进行并行化。

  1. 并行查询:大规模环境中最常见的并行操作是查询。由于Oracle 不需要申请读锁,在大规模系统中,同时存在数百种不同类型的即时查询的高并发应用是很常见的事情。特别是,这些环境会受益于上面讨论的并行操作的自适应控制。

  2. 并行DDL:数据仓库环境通常面临创建大对象的任务——重建索引、创建中间阶段临时表或发出移动数据的分区维护操作。可以为已分区和未分区的对象并行化所有这些类型的操作。

  3.并行DML:并行DML(PARALLEL INSERT、UPDATE 和DELETE)依据大型数据库表和索引,使用并行处理机制来加快或扩展大型DML 操作。

  4. 其他:除了并行SQL执行之外,Oracle 还可以为每个重要的数据库操作使用并行。这些功能包括并行恢复、并行传播(复制)、并行读取外部表、并行装载(SQL Loader实用程序)和并行处理与分区等。


  图2 并行数据库解决方案拓扑图

  以服务器硬件、数据存储网络硬件、IP网络硬件、并行数据库软件四种技术为基础平台,构成了并行数据库解决方案。