张立荣(吴忠供电局,吴忠751100)
摘要:网络技术的发展导致海量数据和信息的产生,如何对其进行正确有效组织和管理,这就对数据库的设计和实现提出了更高的要求,计算机数据库系统的应用和优化亦面临着挑战。本文从并行数据库系统的体系结构、并行数据库的查询,聚集,排序及数据可靠性等方面入手,阐述了对并行数据库的认识和看法。
关键词:并行;数据库;容错
中图分类号:TP392文献标识码:A文章编号:1006-4311(2010)11-0143-02
0引言
随着网络技术和计算机技术的飞速发展,人们的日常生活中产生着越来越多的数据和信息,如电卡消费记录等需要存储和保留,以方便用户查询留档。现有的单机系统对海量数据存储已不能满足要求,对复杂的查询、聚集和排序等操作更是力不能及,因此对海量数据的有效管理是一个亟需解决的问题。本文从上述问题入手研究面向海量数据的并行数据库系统中查询、聚集和排序等操作及并行查询系统容错方法。
1研究前景
随着信息技术的发展网络的普及,各种应用业务需处理的数据量日益增长。对于大部分企业来说,数据规模已达TB级以上,但由于传统数据库系统固有的I/O瓶颈和CPU瓶颈问题,一般意义上的服务器已经不能满足存储和访问的要求。而对于企业来说,为解决这些问题,很有必要设计一种基于多PC的并行数据库管理模式。
2发展现状
随着数据库管理系统中数据量越来越多,系统硬件和软件的复杂程度越来越高,存在如下问题:①对聚合、排序等查询的支持度不高。并行计算机不具备串行计算机的统一的系统结构(冯诺依曼机型),没有整体最优的排序算法(像串行机的快速排序),且并行数据库的排序还要进行数据通信操作,与网络拓扑结构及网络设备有一定关系。②多台PC机按主从结构运行程序时,由于其中一台故障将会导致整个系统无法运行,无法保证系统的可靠性。
2.1并行查询处理技术介绍并行数据库系统是指以并行计算和分布式计算为核心技术,借助于计算机网络的支持,将多台具有独立计算能力的计算机系统(节点),有机融合为一个具有单一映象特性、能最大限度地消除系统瓶颈,能提供海量数据存储与快速数据查询服务的数据库系统。并行数据库按硬件结构分为三类:共享内存(Shared-Memory,简称SM)、共享磁盘(Shared-Disk,简称SD)、无共享(Shared-nothing,简称SN)。SM结构和SD结构系统扩充性差,系统内互相干扰大,主要是由于多个处理器因要获得对共享数据修改权产生节点之间的锁争用,使得数据库的并发读/写操作效率较低。SN结构共享资源最少,相互干扰最小,具有对互联网带宽要求较低和易于扩充规等优点。因此,很多实验室和商业产品的并行数据库产品都采用SN结构。
传统的基于SN结构的两阶段并行查询排序处理算法为二路归并算法,其算法思想使用的是归并技巧。第一阶段,将各个数据库节点上的部分数据进行排序,第二阶段,使用二路归并算法,并行化第一阶段产生的部分查询执行结果,两两排序生成最终结果。该算法虽然能很快给出排序前的几个结果,但如果数据库节点较多,要得到完整的结果则比较耗时,不适于数据规模较大的数据库。因此,设计并行执行算法,使系统能在多个数据库节点上高效执行分组排序操作,成为该领域内极富挑战的一项工作。
2.2数据库系统容错技术容错技术是指系统在运行过程中,若某个子系统或部件发生故障,系统能够自动诊断出故障所在位置和故障的性质,且自动启动冗余或备份子系统或部件,保证系统继续正常运行,自动保证或恢复文件和数据。备份冗余容错为常用的数据库容错技术,其中以双机系统结构的研究最多。主要方式有:
2.2.1双机冷备份,即一台主机实时工作,一台备用机等待备用。
2.2.2使用镜像方式的双机热备份,可选择将主数据库服务器上的表、文件、数据库或全部内容通过专用连接通道镜像到备用服务器上。
2.2.3使用共享磁盘阵列方式的双机热备份,即两台主机共用一个磁盘阵列的方案。相比磁盘镜像方式,使用共享磁盘阵列作为数据源,无需在两台服务器间架设专用网络进行数据同步工作,能减轻主机及网络负载,可提高系统在繁重业务下的可靠性。
3相关技术介绍
3.1并行计算机介绍由于大规模数值计算、海量数据运算及物理极限的限制,使得我们不能通过一台计算机完成如此复杂的工作。并行计算机能够在同一时间内同时完成多条指令操作的计算机,根据不同的划分标准可以分为SIMD和MIMD、共享内存和分布式内存等。
目前的机群系统多采用分布式共享内存模式,即每一个节点是超节点,节点内是共享内存,节点之间是分布式内存,这样结合了二者的优点,所有节点共同完成并行计算的任务。目前主流的并行计算机系统有SMP、MPP和Cluster,编程模型有数据并行和消息传递[2]。
3.2容错技术介绍
3.2.1可靠性定义计算机系统的可靠性是指计算机不发生故障或发生故障也不影响系统正常工作的可能程度。根据可靠性基本理论,容错就是对系统中可能发生的突发事件的控制。即在系统在运行过程中,若某个子系统或部件发生故障,系统将能够自动诊断出故障所在的位置和故障的性质,自动启动冗余或备份的子系统或部件,保证系统能够继续正常运行,自动保存或恢复文件和数据。容错技术是近年来对计算机系统可靠性理论研究和实际工作提出的一种有效手段,产生了如多处理机、磁盘阵列等容错技术,均取得了较理想的效果。但是随着系统的具体化、专一化,必须相应提出适应系统变化的不同的系统容错方据库[4]。
3.2.2双机容错按照工作原理,双机容错可分为镜像磁盘和共享磁盘阵列柜两种方式[1]。(1)镜像磁盘。镜像磁盘是两个磁盘系统将数据存储于各自服务器内,通过镜像引擎将数据实时复制,互为镜像。当一台服务器出现故障不能正常相应请求时,另一台服务器接管工作,响应用户请求。通过两个独立服务器之间的互备,增强数据的安全性,避免单点失效问题。镜像磁盘不需外接磁盘柜,总体成本较低,特点为:数据存储于各自服务器内,避免单点崩溃的可能性,增强数据的安全性。数据存储在各自服务器的硬盘内,因此服务器之间的应用互不影响,提高了服务器正常使用时的效率。在镜像磁盘方式下,风险被分散到两台服务器上,提高了系统的可靠性。(2)共享磁盘阵列柜。共享磁盘阵列柜方式由两台同类型的服务器和一台外接磁盘柜构成,每台服务器拥有各自的本机磁盘,用来安装操作系统、数据库软件、应用软件和双机容错软件。两台服务器通过外接磁盘柜的方式共享数据盘,同时,盘柜可做RAID5或RAID1级数据冗余来保证数据的安全。按照工作方式,共享磁盘阵列柜又可分为双机互备援(DualActive)模式和双机热备(HotStandby)模式。共享磁盘阵列方式的总体特点为:使用外接磁盘柜,可提供海量存储空间,适用于需要大数据量储存的应用环境。
4并行数据库原理
并行程序设计采用消息传递模式与并行数据库系统的SN结构相对应,用主从程序设计模式(如图1),主计算机运行可供用户操作的程序,分别对各从计算机发送控制消息。从计算机对数据分别存贮并进行数据库具体操作,将数据返回主计算机并显示。
4.1简单查询实现对于简单的只需按要求返回查询结果的查询操作,主计算机把查询语句做为命令发送给各从计算机,从计算机接收到命令后开始执行查询操作并返回运算结果。从计算机必须对查询语句进行解析。如果返回单一结果的查询,当某一台计算机查询到结果时首先将结果传回主计算机,然后广播一个命令让其他从计算机停止执行。
4.2插入实现数据库作数据插入操作时,以移动电话卡通话记录为例,我们可以在各从计算机上分别实现插入,和一般插入操作相同,但必须考虑同一个人产生的数据放在同一台计算机上,以减少不同计算机之间的数据相关性,减少通信次数,且可解决动态负载平衡的问题,保证每台计算机上存放的数据量大致相当,保证每一台从计算机在相当的时间内完成任务,减少同步等待的时间。
4.3修改实现主计算机向从计算机发送修改命令,每台从计算机按要求进行修改操作。每台从计算机完成操作后发送操作完成消息给主计算机后,主计算机执行一次同步操作之后继续往下执行。
4.4删除实现主计算机向从计算机发送删除命令,每台从计算机按要求进行删除操作,每台从计算机完成操作后发送操作完成消息给主计算机后。主计算机执行一次同步操作之后继续往下执行。
5小结
面对目前新一代数据库应用对数据库性能和可用性提出的更高的要求,维持高事务吞吐量和低响应时间已成为衡量DBMS性能的重要指标,因此将传统的数据库管理技术与并行处理技术结合的并行数据库技术已越来越为人们所关注,必将在越来越多的领域予以采用。
参考文献:
[1]雷晓萍.企业Oracle数据库双机容错系统的建设.青海交通科技,2004.5
[2]都志辉.高性能计算并行编程技术.清华大学出版社,2001-8-1.
[3]陈国良.并行计算——结构算法编程,高等教育出版社,2003-8-2.
[4]金士尧,胡华平,李宏亮.具有容错结构的高可用计算机双系统研究,中国工程科学,1999.