并行数据库的基本体系结构

并行数据库要求尽可能的并行执行所有的数据库操作,从而在整体上提高数据库系统的性能。根据所在的计算机的处理器(Processor)、内存(Memory)及存储设备(Storage)的相互关系,并行数据库可以归纳为三种基本的体系结构(这也是并行计算的三种基本体系结构),即共享内存结构(Shared-Memory)、共享磁盘结构(Shared-Disk)和无共享资源结构(Shared- Nothing)。

 

1、共享内存(Shared-Memory)结构

该结构包括多个处理器、一个全局共享的内存(主存储器)和多个磁盘存储,各个处理器通过高速通讯网络(Interconnection Network)与共享内存连接,并均可直接访问系统中的一个、多个或全部的磁盘存储,在系统中,所有的内存和磁盘存储均由多个处理器共享。

在这种结构中,(1)提供多个数据库服务的处理器通过全局共享内存来交换消息和数据,通讯效率很高,查询内部和查询间的并行性的实现也均不需要额外的开销;(2)数据库中的数据存储在多个磁盘存储上,并可以为所有处理器访问;(3)在数据库软件的编制方面与单处理机的情形区别也不大。

这种结构由于使用了共享的内存,所以可以基于系统的实际负荷来动态地给系统中的各个处理器分配任务,从而可以很好地实现负荷均衡。

这种结构硬件资源之间的互连比较复杂,硬件成本较高;由于多个处理器共享内存,所以系统中的处理器数量的增加会导致严重的内存争用,因此系统中处理器的数量受到限制,系统的可扩充性较差;此外,由于共享内存的机制,会导致共享内存的任何错误将影响到系统中的全部处理器,使得系统的可用性表现得也不是很好。

 

2、共享磁盘(Shared-Disk)结构

该结构由多个具有独立内存(主存储器)的处理器和多个磁盘存储构成,各个处理器相互之间没有任何直接的信息和数据的交换,多个处理器和磁盘存储由高速通信网络连接,每个处理器都可以读写全部的磁盘存储。

这种结构常用于实现数据库集群,硬件成本低、可扩充性好、可用性强,且可很容易地从单处理器系统迁移,还可以容易地在多个处理器之间实现负载均衡。

这种结构的一个明显不足是多个处理器使用系统中的全部的磁盘存储,因此,当处理器增加时可能会导致磁盘争用而导致的性能问题。

这种结构还有另外一个不足:系统中的每一个处理器可以访问全部的磁盘存储,磁盘存储中的数据被复制到各个处理器各自的高速缓冲区中进行处理,这时会出现多个处理器同时对同一磁盘存储位置进行访问和修改,最终导致数据的一致性无法保障,因此,在结构中需要增加一个分布式缓存管理器来对各个处理器的并发访问进行全局控制与管理,这会带来额外的通信开销。

3、无共享资源(Shared-Nothing)结构

该结构由多个完全独立的处理节点构成,每个处理节点具有自己独立的处理器、独立的内存(主存储器)和独立的磁盘存储,多个处理节点在处理器级由高速通信网络连接,系统中的各个处理器使用自己的内存独立地处理自己的数据。

这种结构中,每一个处理节点就是一个小型的数据库系统,多个节点一起构成整个的分布式的并行数据库系统。由于每个处理器使用自己的资源处理自己的数据,不存在内存和磁盘的争用,提高的整体性能。另外这种结构具有优良的可扩展性——只需增加额外的处理节点,就可以以接近线性的比例增加系统的处理能力。

    这种结构中,由于数据是各个处理器私有的,因此系统中数据的分布就需要特殊的处理,以尽量保证系统中各个节点的负载基本平衡,但在目前的数据库领域,这个数据分布问题已经有比较合理的解决方案。

    由于数据是分布在各个处理节点上的,因此,使用这种结构的并行数据库系统,在扩展时不可避免地会导致数据在整个系统范围内的重分布(Re-Distribution)问题。

 

目前,在并行数据库领域,Shared-Memory结构很少被使用了,Shared-Disk结构和Shared-Nothing结构则由于其各自的优势而得以应用和发展。Shared-Disk结构的典型代表是Oracle集群,Shared-Nothing结构的典型代表是Teradata,IBM DB2和MySQL的集群也使用了这种结构。

 

明出处:http://blog.csdn.net/NevePioneer/archive/2008/11/04/3219590.aspx

你可能感兴趣的:(体系结构)